Skip to content

Instantly share code, notes, and snippets.

@soheilhy
soheilhy / CakePattern.scala
Created June 20, 2012 01:40
Cake Pattern
// You create the trait.
trait JavaScriptCompilerComponent {
def compiler: JavaScriptCompiler
// You add the abstract method to get all javascript files.
def jsFiles: Seq[Source]
def getCompiledJavaScript = compiler.compile(jsFiles)
trait JavaScriptCompiler {
@soheilhy
soheilhy / CakePatternIm.scala
Created June 20, 2012 01:25
Cake Pattern Imitated
// You create the trait.
trait JavaScriptCompilerComponent {
def compiler: JavaScriptCompiler
trait JavaScriptCompiler {
def compile(files: Seq[Source]): String
}
}
// You implement it.
@soheilhy
soheilhy / HttpServer.scala
Created June 14, 2012 02:45
Routing based on HTTP method in Finagle
import com.twitter.finagle.http.path._
import com.twitter.finagle.http.service.RoutingService
import com.twitter.finagle.http.{Request, Response, RichHttp, Http}
import com.twitter.finagle.{Service, SimpleFilter}
import org.jboss.netty.handler.codec.http._
import org.jboss.netty.handler.codec.http.HttpResponseStatus._
import org.jboss.netty.handler.codec.http.HttpVersion.HTTP_1_1
import org.jboss.netty.buffer.ChannelBuffers.copiedBuffer
import org.jboss.netty.util.CharsetUtil.UTF_8
import com.twitter.util.Future