Skip to content

Instantly share code, notes, and snippets.

@tstone
tstone / gist:8420668
Last active January 3, 2016 06:09
"Type Safety"
@(place: Place)
<a href="@place.details.contact.website">Website</a>
------------------------------------------------------------------------
<a href="{{website}}">Website</a>
@tstone
tstone / gist:8449893
Last active January 3, 2016 10:29
Scala Futures + For Comprehension/Seq's
// DEMO CODE
import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global
def time[A](label: String, block: => Future[A]) = {
val t0 = System.nanoTime()
block.onComplete {
case _ => {
val t1 = System.nanoTime()
@tstone
tstone / implicit-hierarchy.scala
Created March 24, 2014 18:36
Experimenting with how Scala handles multiple implicit conversions in scope when those conversions apply to child types.
scala> class A { val prop = "a" }
scala> class B extends A { override val prop = "b" }
scala> class C extends B
scala> implicit class Foo(a: A) { def value = a.prop }
scala> implicit class Bar(b: B) { def value = b.prop }
scala> val c = new C
scala> c.value
res0: String = b
// Given
trait Common
class A extends Common
class B extends Common
class C extends Common
// These are equivalent...
scala> import mq.models.place._
import mq.models.place._
scala> import mq.models._
import mq.models._
scala> val a = Airport(123, "slug", Address("US"), LatLng(1,-1), PlaceAttributes(), PoiAttributes(), AirportAttributes())
a: mq.models.place.Airport = Airport(123,slug,Address(US,None,None,None,None,None),LatLng(1.0,-1.0),PlaceAttributes(None,List(),None),PoiAttributes(None,None,None,None,None,List(),List(),None,None,None,List(),List(),List(),List(),None,List()),AirportAttributes(,List(),None))
scala> a.name(Some("foo"))
class A
class B extends A
class C extends B
val a = new A
val b = new B
val c = new C
def f[T : ClassTag](a: A) = a match {
case _: T => "is given type"
@tstone
tstone / javascript-in-scala.scala
Last active August 29, 2015 14:00
Javascript in Scala
// Function "add" implemented in javascript
function add(x, y) {
return x + y;
}
// Function "add" implemented in Scala as javascript is actually implementing it behind the scenes
sealed abstract class DynamicType
@tstone
tstone / gist:cb57355fc70cf6661cd9
Last active August 29, 2015 14:00
Twirl conversions
// bool.scala.html
@(param: Boolean)
<h1>Value: @param</h1>
// index.scala.html
@bool(Some(false))
@bool("false")
@tstone
tstone / fitler-first-vs-distinct-after.scala
Last active August 29, 2015 14:02
A little performance test for two approaches to resolving duplicates between two lists
// -- Measuring ---
def time[A](label: String, count: Int = 100)(block: => A): Long = {
// the first test run on the console is compiling it
block
// Take the average of <count> runs
(1 to count).toSeq.map { i =>
val t0 = System.nanoTime()
block
@tstone
tstone / val-vs-lazy-val.scala
Last active November 11, 2022 10:29
val vs. lazy val for implicit class's in Scala
implicit class StringOps(s: String) {
val one = { println("one"); "one" }
val two = { println("two"); "two" }
lazy val three = { println("three"); "value" }
}
scala> "asdf".three
one