Skip to content

Instantly share code, notes, and snippets.

View double16's full-sized avatar

Patrick Double double16

View GitHub Profile
@double16
double16 / BootStrap.groovy
Created August 12, 2015 18:11
Adapt Gson for Grails Object Marshaling
import grails.converters.JSON
import grails.converters.XML
import org.bson.types.ObjectId
import org.springframework.context.MessageSourceResolvable
import org.springframework.context.i18n.LocaleContextHolder
// The following goes inside the init closure
[JSON, XML /*Gson already handles ObjectID*/]*.registerObjectMarshaller(ObjectId) {
return it?.toString()
@double16
double16 / DocumentSettleCondition.java
Last active April 17, 2021 14:26
Selenium document ready state settled condition
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
/**
* Licensed under MIT License
* Wraps a condition so that it returns only after the document state has settled for a given time, the default being 2 seconds. The
* document is considered settled when the "document.readyState" field stays "complete" and the URL in the browser stops changing.
*/
public class DocumentSettleCondition<T> implements ExpectedCondition<T> {
@double16
double16 / codeship
Created April 30, 2015 18:59
CI cache configs
export GRAILS_OPTS="-Dgrails.work.dir=${HOME}/cache/grails -Divy.default.ivy.user.dir=${HOME}/cache/ivy"
export GRADLE_USER_HOME="${HOME}/cache/gradle/"
@double16
double16 / application.css
Last active August 29, 2015 14:20
Gradle-Bower blog post
/*
*= require_tree bower_components
*= require main
*= require mobile
*= require_self
*/
@double16
double16 / Procfile
Created April 22, 2015 19:01
double16/pet-store heroku deploy examples
web: java -Dgrails.env=prod -Dserver.port=${PORT:-8080} -Dserver.host=0.0.0.0 ${JAVA_OPTS} -jar pet-store*.jar
@double16
double16 / build.gradle
Last active February 24, 2023 06:51
Gradle task to collect JUnit test results into a CSV, makes your manager happier, they like Excel ;)
task collectResults() {
def output = file("build/reports/summary.csv")
doLast {
file("build/reports").mkdirs()
output.text = '"Project","Test","Time","Result","Duration"\r\n'
allprojects.each { project2 ->
logger.info("Processing project ${project2.name}")
def resultFiles = project2.fileTree("build") { include '**/TEST-*.xml' }
resultFiles.each { file ->
logger.info("Processing report ${file}")
@double16
double16 / ParosProxySelector.java
Last active August 29, 2015 14:16
Java proxy for specific URLs
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.Proxy.Type;
import java.net.ProxySelector;
import java.net.SocketAddress;
import java.net.URI;
import java.util.Collections;
import java.util.List;
@double16
double16 / Config.groovy
Created December 22, 2014 20:59
Excluding assets from pipeline processing
grails.assets.excludes = ["**/*.less","angularjs/**","animate.css","bootstrap*","jquery/*"]
grails.assets.plugin."twitter-bootstrap".excludes = ["**/*.less"]
grails.assets.plugin."twitter-bootstrap".includes = ["bootstrap.less"]
grails.assets.plugin."font-awesome-resources".excludes = ["font-awesome/**/*.less"]
grails.assets.plugin."font-awesome-resources".includes = ["font-awesome/font-awesome.less"]
@double16
double16 / BuildConfig.groovy
Created December 22, 2014 20:58
Adding cdn-asset-pipeline to BuildConfig.groovy
plugins {
compile ':cdn-asset-pipeline:0.4.1'
}
@double16
double16 / Config.groovy
Last active August 29, 2015 14:11
cdn-asset-pipeline Config.groovy snippet
def appName = grails.util.Metadata.current.'app.name'
def appVersion = grails.util.Metadata.current.'app.version'
def cdnAccessKey = System.getenv('CDN_AWS_ACCESS_KEY_ID')
def cdnSecretKey = System.getenv('CDN_AWS_SECRET_ACCESS_KEY')
if (cdnAccessKey && cdnSecretKey) {
grails {
assets {
cdn {
provider = 's3' // Karman provider
directory = ‘mybucket’