Skip to content

Instantly share code, notes, and snippets.

View adamretter's full-sized avatar
🎩
Down the Code Mine

Adam Retter adamretter

🎩
Down the Code Mine
View GitHub Profile
@adamretter
adamretter / RuleParser.scala
Created April 28, 2012 13:13
Scala Parser, trying to parse regexp
package csvvalidator
import scala.util.parsing.combinator.syntactical.StandardTokenParsers
import scala.io.Source;
/**
* Adam Retter
*/
object TestProblemParser extends StandardTokenParsers {
@adamretter
adamretter / depth2.xquery
Created August 21, 2012 21:40
Calculate the depth of tree in XQuery
declare function local:_recurse_depth($element, $count) as xs:integer*
{
if($element[child::element()])then
for $child in $element/child::element() return
local:_recurse_depth($child, $count + 1)
else
$count
};
declare function local:depth($x as node()?) as xs:integer
@adamretter
adamretter / gist:3639589
Created September 5, 2012 16:39
Partial Function application for JDBC Connections in Scala
def withConnection[T](ds: ComboPooledDataSource, fn : Connection => T) : T = {
var optConn : Option[Connection] = Option.empty;
try {
val conn = ds.getConnection
optConn = Some(conn);
fn(conn)
} finally {
@adamretter
adamretter / parser1-test.scala
Created September 24, 2012 17:20
Scala Parser Combinators - need mutually exclusive Global Directives
def Expr = (GlobalDirectiveExpr*) ~ (ColumnRuleExpr+) ^^ {
case d ~ r => CsvSchema(d, r)
}
def GlobalDirectiveExpr = "@" ~> (SeparatorExpr | QuotedExpr | TotalColumnsExpr | NoHeaderExpr | IgnoreColumnNameCaseExpr) ^^ {
case d => Directive(d)
}
@adamretter
adamretter / SourceBlock.java
Created July 16, 2013 15:10
Jenkins plugin inner config class
package hudson.plugins.scalabuilder;
import hudson.Extension;
import hudson.model.AbstractDescribableImpl;
import hudson.model.Descriptor;
import hudson.tasks.BuildStepDescriptor;
import hudson.tasks.Builder;
import org.kohsuke.stapler.DataBoundConstructor;
/**
@adamretter
adamretter / ScalaBuilder.java
Created July 16, 2013 15:11
Jenkins plugin outer config class
package hudson.plugins.scalabuilder;
import hudson.EnvVars;
import hudson.Extension;
import hudson.Launcher;
import hudson.FilePath;
import hudson.model.BuildListener;
import hudson.model.AbstractBuild;
import hudson.model.AbstractProject;
import hudson.model.Computer;
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
<!--
This jelly script is used for per-project configuration.
See global.jelly for a general discussion about jelly script.
-->
<!--
Creates a checkbox that maps to the "remoteDebug" property.
If selected, creates a checkbox that maps to the "suspend" property and a textbox that maps to the "port" property.
public abstract boolean isApplicable(Class<? extends AbstractProject> jobType);
public abstract class AbstractProject<P extends AbstractProject<P,R>,R extends AbstractBuild<P,R>> extends Job<P,R>
implements BuildableItem, ModelObjectWithChildren {
...
}
@adamretter
adamretter / MyCollection.scala
Created August 19, 2013 11:24
Attempting to implement custom Scala Collection, this code seems to cause the Scala 2.10.2 compiler into an infinite loop :-(
import scala.collection.generic.{GenericCompanion, GenericTraversableTemplate, SeqFactory}
import scala.collection.mutable.{ArrayBuffer, Builder}
class MyCollectionBuilder[A] extends Builder[A, MyCollection[A]] {
val data = ArrayBuffer[A]()
def +=(elem: A) = {
data += elem
this
}
xquery version "3.0";
module namespace search = "http://xmlss/search";
import module namespace web = "http://xmlss/web" at "web.xqm";
declare namespace rest = "http://exquery.org/ns/restxq";
declare namespace output = "http://www.w3.org/2010/xslt-xquery-serialization";
declare