Skip to content

Instantly share code, notes, and snippets.


Christopher Hunt huntc

View GitHub Profile
huntc / esliteImpl.scala
Created Mar 10, 2016
Sample of using Scala with the Java DSL of Lagom
View esliteImpl.scala
package com.lightbend.conductr.eslite
import javax.inject.Named
import akka.NotUsed
import akka.pattern.ask
import com.fasterxml.jackson.databind.node.ObjectNode
import com.lightbend.conductr.eslite.dto._
huntc / SemVer.scala
Last active Mar 22, 2019
Semantic version case class
View SemVer.scala
import scala.util.Try
type PreRelease = Either[String, Int]
object SemVer {
val pattern = """^(\d+)\.(\d+)\.(\d+)(-(([1-9a-zA-Z][0-9a-zA-Z-]*)(\.([1-9a-zA-Z][0-9a-zA-Z-]*))))?$""".r
def apply(s: String): SemVer =
s match {
case pattern(major, minor, patch, _, _, preRelease1, _, preRelease2) =>
View Application.scala
def render(project: Project.Value, path: String) = EssentialAction { rh =>
val futureAction = project match {
case Project.ConductR =>
.map {
case html: Html => Action(Ok(html))(rh)
case action: Action[AnyContent] => action(rh)
case DocRenderer.NotFound(p) => Action(NotFound(s"Cannot find $p"))(rh)
case DocRenderer.NotReady => Action(ServiceUnavailable("Initializing documentation. Please try again in a minute."))(rh)
View SourceInputStream.scala
* Copyright (C) 2009-2014 Typesafe Inc. <>
import{ ActorRef, ActorRefFactory, FSM, Props }
import akka.pattern.ask
import{ OnComplete, OnError, OnNext }
import{ ActorSubscriber, RequestStrategy, ZeroRequestStrategy }
huntc / bundleRequest.scala
Last active Aug 29, 2015
Initial attempt at marshalling a bundle request given multipart formdata
View bundleRequest.scala
import{ActorRef, Actor}
import akka.http.Unmarshal
import akka.http.model.HttpMethods._
import akka.http.model.{ HttpEntity, HttpRequest, HttpResponse, MultipartFormData, StatusCodes }
import akka.http.unmarshalling.Unmarshalling
import akka.pattern.ask
import{ ImplicitFlowMaterializer, Flow }
import akka.util.{ Timeout, ByteString }
View gist:46927a54d4211fd521ba
package com.typesafe.reactiveruntime.resource
import{ActorRef, Props, Actor}
import akka.cluster.ClusterEvent.{MemberEvent, InitialStateAsEvents, MemberRemoved, MemberUp}
import akka.cluster.{Member, Cluster, UniqueAddress}
import akka.contrib.pattern.{DistributedPubSubMediator, DistributedPubSubExtension}
import com.typesafe.reactiveruntime.resource.ResourceProvider.Event.ResourceOffer
import com.typesafe.reactiveruntime.resource.ResourceProvider.RequestResources
import java.util.UUID
import scala.collection.immutable.HashSet
View gist:838e75a7f9870cb7ff76
case class StartBundle(bundleName: String, bundleSource: ActorRef, configName: String, configSource: Option[ActorRef])
View gist:e4f89679303e89d7a356
package com.typesafe.sbt.rr
import sbt._
import Keys._
import complete.DefaultParsers._
import com.typesafe.sbt.SbtNativePackager._
import NativePackagerKeys._
import sbt.complete.Parser
object Import {
huntc / gist:b0279d79fcb706e0e1e0
Last active Aug 29, 2015
Prototype stream buffer
View gist:b0279d79fcb706e0e1e0
package com.typesafe.jse
import{IOException, OutputStream, InputStream}
import java.util.concurrent.locks.{Lock, ReentrantLock}
import java.util.concurrent.TimeUnit
import scala.concurrent.duration._
* Maintains a circular buffer where an output stream is used to push data into it, and an input stream is used to
* pull data from it. The caller is expected to *always* close the input and output streams.
View gist:9822808
(function(sbt) {
var playScala = require("playScala");
var playKeys = playScala.keys;
"name": "test-jshint",
"version": "1.0-SNAPSHOT",
You can’t perform that action at this time.