Skip to content

Instantly share code, notes, and snippets.

View glaforge's full-sized avatar

Guillaume Laforge glaforge

View GitHub Profile
Index: src/test/groovy/lang/GroovyClassLoaderTest.groovy
===================================================================
--- src/test/groovy/lang/GroovyClassLoaderTest.groovy (revision 16526)
+++ src/test/groovy/lang/GroovyClassLoaderTest.groovy Wed Jun 24 12:49:00 CEST 2009
@@ -87,9 +87,14 @@
paths += getPaths(System.getProperty("java.class.path"))
paths = paths.unique()
- def file
+ def file, tempFolder
@glaforge
glaforge / closure-trampoline.diff
Created November 16, 2010 13:20
Closure Trampoline Patch
Index: groovy-core/src/main/groovy/lang/Closure.java
===================================================================
--- groovy-core/src/main/groovy/lang/Closure.java (revision 21027)
+++ groovy-core/src/main/groovy/lang/Closure.java (revision )
@@ -610,6 +610,39 @@
return Memoize.buildSoftReferenceMemoizeFunction(protectedCacheSize, new LRUCache(maxCacheSize), this);
}
+ /**
+ * Executes the current closure on a functional trampoline.
@glaforge
glaforge / build.gradle
Created November 25, 2011 16:04 — forked from Dierk/build.gradle
build.gradle for setting up a new gradle-based project
apply plugin:'groovy'
apply plugin:'idea'
repositories { mavenCentral() }
dependencies {
groovy 'org.codehaus.groovy:groovy-all:1.8.4'
}
task makeDirs(description:'make all dirs for project setup') << {
@glaforge
glaforge / gist:2351150
Created April 10, 2012 12:51
Ray tracer example using @CompileStatic
// translated from http://www.ffconsultancy.com/languages/ray_tracer/code/1/ray.java
// by Derek Young - Sep 6, 07
import groovy.transform.CompileStatic
@CompileStatic
class Vec {
public double x, y, z;
public Vec(double x2, double y2, double z2) { x = x2; y = y2; z = z2; }
@glaforge
glaforge / .vimrc
Created June 8, 2012 14:27
My current .vimrc configuration
let mapleader = ","
let g:mapleader=","
set number
set expandtab
set shiftwidth=4
set tabstop=4
set smarttab

This is ** bold **

This is bold

  • abc
    • bcd
  • cde
@glaforge
glaforge / markdownCompare.groovy
Last active January 11, 2016 11:19
Compare HTML output of Pegdown and XWiki Rendering's upcoming Markdown support
@Grab("org.pegdown:pegdown:1.2.1")
import org.pegdown.*
@Grab("org.xwiki.commons:xwiki-commons-component-default:4.5-SNAPSHOT")
import org.xwiki.component.embed.EmbeddableComponentManager
import org.xwiki.component.annotation.*
@Grab("org.xwiki.rendering:xwiki-rendering-syntax-markdown:4.5-SNAPSHOT")
import org.xwiki.rendering.parser.Parser
import org.xwiki.rendering.converter.Converter
@interface Min {
int value() default 0
}
@interface Max {
int value() default 100
}
import org.codehaus.groovy.transform.AnnotationCollectorTransform
import org.codehaus.groovy.ast.*
@glaforge
glaforge / gist:6692100
Created September 24, 2013 22:17
Safer usage of memcache service in Google App Engine
// when doing the following...
if (ms.containsKey(key)) {
return ms.get(key);
} else {
// ... fetch and cache
}
// you run the risk that between the existence check in the if statement
// and the moment you actually call the get,
import groovy.transform.*
import groovyx.gpars.actor.*
import groovyx.gpars.group.*
@Immutable class Calculate {}
@Immutable class Work { int start, nrOfElements }
@Immutable class Result { double value }
@Immutable class PiApproximation { double pi ; long duration }
double calculatePiFor( int start, int nrOfElements ) {