Skip to content

Instantly share code, notes, and snippets.

View LeifWarner's full-sized avatar

Leif Warner LeifWarner

  • Janrain
  • Portland, Oregon
View GitHub Profile
package janrain
class Foo extends Function0[Unit] {
def apply() {
println("Called FOO")
println(RedisSetup)
}
}
module Java::ScalaCollection::TraversableOnce
include Enumerable
def each(&f)
foreach(f)
end
# Cribbed from
# https://github.com/scala/scala/blob/v2.9.2/src/library/scala/collection/TraversableOnce.scala#L231
def to_a
def unfold[Z: Zero](z:Z) = z == ∅[Z] !? z.some
package org.scalatra.servlet
import java.io.{NotSerializableException, OutputStream, ObjectOutputStream}
import javax.servlet.http.{HttpSessionAttributeListener, HttpSessionBindingEvent}
object NullOut extends OutputStream {
def write(b: Int) {}
}
object SessionSerializingListener extends HttpSessionAttributeListener {
package org.scalatra.servlet
import javax.servlet.http.HttpSession
trait TestImplicits extends ServletApiImplicits {
override implicit def enrichSession(session: HttpSession): TestSerializationSession =
new TestSerializationSession(session)
}
@LeifWarner
LeifWarner / Main.scala
Created August 24, 2012 21:11
Lift-json decomposition / extraction
import net.liftweb.json.{Extraction, DefaultFormats}
object Main {
implicit val formats = DefaultFormats
val p = Person("Leif", 33)
def main(args:Array[String]) {
val dp = Extraction decompose p
package org.scalatra
package liftjson
import scala.xml.XML
import net.liftweb.json._
import net.liftweb.json.Xml.toXml
trait JsonSupport extends ApiFormats {
/**
@LeifWarner
LeifWarner / lift-json.scala
Created July 24, 2012 21:39
lift-json trait for scalatra
package org.scalatra
package liftjson
import scala.xml.XML
import net.liftweb.json._
import net.liftweb.json.Xml.toXml
trait JsonSupport extends ApiFormats {
/**
@LeifWarner
LeifWarner / stringQuery.scala
Created June 5, 2012 19:13
JDBC query using scala-arm
def sql[T](q: String)(f: ResultSet => T): Either[List[Throwable], T] = (for {
connection <- managed( datasource.getConnection )
statement <- managed( connection.createStatement )
resultSet <- managed( statement.executeQuery(q) )
} yield resultSet).acquireFor(f)
package foo
class Crash {
def foo =
try
err
catch {
case e:Exception =>
e.printStackTrace
}