Skip to content

Instantly share code, notes, and snippets.

Christoph Dähne christoph-daehne

Block or report user

Report or block christoph-daehne

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
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/>
View gist:f370c9a49dd7d67f9420
assertEquals "incorrect nickname", 'alice', 'alice-wrong'
// we get:
// incorrect nickname expected:<alice[]> but was:<alice[-wrong]>
christoph-daehne / HelloWorldDsl.groovy
Last active Aug 29, 2015
Groovy DSL example: Hello World
View HelloWorldDsl.groovy
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 / BouquetDsl.groovy
Last active Aug 29, 2015
Groovy DSL example: Bouquet
View BouquetDsl.groovy
// 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
View rx.Observable.chaining.example.groovy
@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 =, in2) { a, b ->
a + b
}.map { a ->
View FindAllHelper.groovy
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)
View x-sort-by.js
import Ember from 'ember';
* use "{{yield sorted}}" as handlebars template
export default Ember.Component.extend({
list: undefined,
property: undefined,
sorted: function () {
View usage-x-sort-by.hbs
{{x-sort-by list=friends property="name" as |sorted|}}
{{#each sorted as |friend|}}
View usage-findAll.hbs
{{findAll persons field="isFriend" assignTo="friends"}}
{{#sort friends sortBy="name" assignTo="sorted"}}
{{#each sorted}}
christoph-daehne / HighlightedHelloWorldDsl.groovy
Last active Oct 20, 2016
Highlighted Groovy DSL example: Hello World
View HighlightedHelloWorldDsl.groovy
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
You can’t perform that action at this time.