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 / 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
@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
// our configuration model
class BouquetConfiguration extends ArrayList<String> {
int howMany(String flower) {
return this.count { it == flower }
}
String toString() {
return "Bouquet: " + this.toString()
}
class BouquetConfiguration extends ArrayList<String> {
int howMany(String flower) {
return this.count { it == flower }
}
String toString() {
return "Bouquet: " + this.toString()
}
}
// our configuration model
class BouquetConfiguration extends ArrayList<String> {
int howMany(String flower) {
return this.count { it == flower }
}
String toString() {
return "Bouquet: " + this.toString()
}
@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)