Skip to content

Instantly share code, notes, and snippets.

@danslapman
danslapman / build.sbt
Created December 28, 2017 14:40
sbt config scope
name := "sbt-scopes"
version := "0.1"
scalaVersion := "2.12.4"
lazy val Probe = config("probe").intransitive
.extend(Compile)
.describedAs("Probe configuration")
@danslapman
danslapman / build.sbt
Created December 29, 2017 11:48
Copy classes from alternative target
copyProbeClasses := {
val log = streams.value.log
val probeTarget = new File(crossTarget.value, "probe-classes")
(probeTarget ** "*" filter(_.isFile)).get.foreach { fl =>
log.info("Copying " + fl.relativeTo(probeTarget).get.toString)
Files.copy(fl.toPath, new File((classDirectory in Compile).value, fl.relativeTo(probeTarget).get.toString).toPath, REPLACE_EXISTING)
}
}
@danslapman
danslapman / combined.sc
Last active September 26, 2018 06:34
Combine two partial functions narrowing domain
import scala.util.{Success, Try}
val pf1: PartialFunction[Try[String], String] = {
case Success(s) => s
}
val pf2: PartialFunction[String, String] = {
case s if s.contains("pass") => s
}
@danslapman
danslapman / ex.sc
Last active October 17, 2019 13:42
Add resolver and compiler plugin to ammonite REPL
import coursierapi.MavenRepository
interp.repositories.update(interp.repositories() ::: List(MavenRepository.of(
"http://dl.bintray.com/danslapman/maven"
))
@
import $ivy.`danslapman::shapeless-circe:1.0`
import $plugin.$ivy.`org.spire-math::kind-projector:0.9.7`
@danslapman
danslapman / conf.sc
Created May 16, 2018 10:16
Parallel lazy future with cats
interp.configureCompiler(_.settings.YpartialUnification.value = true)
@danslapman
danslapman / JSR310.scala
Created June 20, 2018 11:02
JSR310 custom formatters
import java.time._
import java.time.format.{DateTimeFormatter, DateTimeFormatterBuilder}
import java.time.temporal.{ChronoField, TemporalAccessor}
import java.{time => jt}
import scala.util.Try
trait ZonedParser {
protected val formatter: DateTimeFormatter
@danslapman
danslapman / cookbook.sc
Created June 26, 2018 14:51
Scala scripting cookbook
import java.nio.file.{Files, Paths, StandardOpenOption => SOO}
import scala.io.Source
import collection.JavaConverters._
val sep = System.lineSeparator
val file = Source.fromFile(..)
val data = file.getLines
...
@danslapman
danslapman / consul.py
Created June 27, 2018 18:32
Simple python consul client
import requests
class ConsulClient:
def __init__(self, consul_host, consul_port=8500):
self._service_url_template = "http://{host}:{port}/v1/catalog/service/{name}"
self._host = consul_host
self._port = consul_port
def get_service(self, service_name):
@danslapman
danslapman / conf.sc
Created July 3, 2018 17:15
Function combination
interp.configureCompiler(_.settings.YpartialUnification.value = true)
@danslapman
danslapman / conf.sc
Created July 3, 2018 17:16
Kleisli demonstration
interp.configureCompiler(_.settings.YpartialUnification.value = true)