Skip to content

Instantly share code, notes, and snippets.

View christoph-daehne's full-sized avatar

Christoph Dähne christoph-daehne

View GitHub Profile
package de.sandstormmedia;
import com.sun.mail.imap.IMAPFolder;
import javax.mail.*;
import java.util.Properties;
/**
* This example prints all messages (emails) from an IMAP-folder to the console.
* <p/>
assertEquals "incorrect nickname", 'alice', 'alice-wrong'
// we get:
// incorrect nickname expected:<alice[]> but was:<alice[-wrong]>
@christoph-daehne
christoph-daehne / HelloWorldDsl.groovy
Last active August 29, 2015 14:23
Groovy DSL example: Hello World
class HelloWorldService {
// this function becomes a keyword in our DSL
void printHelloWorld() {
println("Hello World")
}
}
class HelloWorldScript {
static void execute(Closure script) {
// here we wire the colure with the service
@christoph-daehne
christoph-daehne / BouquetDsl.groovy
Last active August 29, 2015 14:23
Groovy DSL example: Bouquet
// our configuration model
class BouquetConfiguration {
private final List<String> flowers = []
// method for use at runtime
int howMany(String flower) {
return flowers.count { it == flower }
}
// DSL keyword for use at DSL execution
@christoph-daehne
christoph-daehne / rx.Observable.chaining.example.groovy
Created February 25, 2016 07:50
Example for rx.Observable chaining
@Grab(group='io.reactivex', module='rxjava-reactive-streams', version='0.5.0')
import rx.Observable
def in1 = Observable.from([1, 3, 5]).map { a -> a - 1 }
def in2 = Observable.from([2, 4, 6]).map { a -> a - 1 }
def in3 = Observable.error(new Exception("BAM!"))
def sumTimes2 = Observable.zip(in1, in2) { a, b ->
a + b
}.map { a ->
import com.github.jknack.handlebars.Context
import com.github.jknack.handlebars.Helper
import com.github.jknack.handlebars.Options
/**
* filters a list and adds a variable to the context
*
* options:
* - assignTo: name of the variable to add to the context
* - field: (optional) filter by "trueness" of the given property (this is default)
import Ember from 'ember';
/**
* use "{{yield sorted}}" as handlebars template
*/
export default Ember.Component.extend({
list: undefined,
property: undefined,
sorted: function () {
{{x-sort-by list=friends property="name" as |sorted|}}
{{#each sorted as |friend|}}
{{/each}}
{{/x-sort-by}}
{{findAll persons field="isFriend" assignTo="friends"}}
{{#sort friends sortBy="name" assignTo="sorted"}}
{{#each sorted}}
{{/each}}
{{/sort}}
{{/findAll}}
@christoph-daehne
christoph-daehne / HighlightedHelloWorldDsl.groovy
Last active October 20, 2016 13:23
Highlighted Groovy DSL example: Hello World
class HelloWorldService {
void printHelloWorld() {
println("Hello World")
}
}
class HelloWorldScript {
// by annotating the parameter we gain syntax highlighting and auto-completion
static void execute(@DelegatesTo(strategy = Closure.DELEGATE_FIRST, value = HelloWorldService) Closure script) {
script.resolveStrategy = Closure.DELEGATE_FIRST