Skip to content

Instantly share code, notes, and snippets.

View OlegIlyenko's full-sized avatar

ΘLΞG OlegIlyenko

View GitHub Profile
// First you need to create module with actor system and actor bindings in it:
// IMPORTANT: `Actor` bindings should always be providers (bound with `toProvider` method,
// IMPORTANT: which will create new instances each time it gets injected)
implicit val module = new Module {
bind [ActorSystem] to ActorSystem("MySystem")
bind [GreetPrinter] toProvider new GreetPrinter
binding toProvider new GenericPrinter
bind [PrintStream] to Console.out
@OlegIlyenko
OlegIlyenko / Parboiled2PredicateParser.scala
Created June 25, 2014 23:43
Parboiled2 Predicate Parser
import scala.annotation.switch
import org.parboiled2._
import scala.io.Source
import scala.util.{Failure, Success}
class PredicateParser(val input: ParserInput) extends Parser with CommonRules {
def And = Keyword("and")
def Or = Keyword("or")
def Not = Keyword("not")
@OlegIlyenko
OlegIlyenko / min-max-usage.scala
Created March 27, 2010 01:49
minBy and maxBy for Traversable
println("Sorted: " + list.sortBy(_.balance))
println("Max: " + list.maxBy(_.balance))
println("Min: " + list.minBy(_.balance))
@OlegIlyenko
OlegIlyenko / build.sbt
Last active September 21, 2015 18:08
SBT maven central publishing setup (after the setup just execute `sbt publishSigned`)
// In your project
// General stuff like name, description, version
// Publishing
publishMavenStyle := true
publishArtifact in Test := false
pomIncludeRepository := (_ => false)
publishTo := Some(
@OlegIlyenko
OlegIlyenko / Build.scala
Created December 11, 2011 19:01
Publishing Pamflet with SBT and gh-pages (project/project/Build.scala)
import sbt._
object PluginDef extends Build {
override def projects = Seq(root)
lazy val root = Project("plugins", file(".")) dependsOn (ghpages, pamflet)
lazy val ghpages = uri("git://github.com/jsuereth/xsbt-ghpages-plugin.git")
lazy val pamflet = uri("git://github.com/n8han/pamflet-plugin#0.3.0")
}
@OlegIlyenko
OlegIlyenko / build.sbt
Created December 11, 2011 19:08
Publishing Pamflet with SBT and gh-pages (build.sbt)
import com.jsuereth.sbtsite.SiteKeys
// add all setting from the site plugin to the project
seq(site.settings: _*)
// add all setting from the ghpages plugin to the project
seq(ghpages.settings: _*)
// read-only git repository URI of the current project
git.remoteRepo := "git://github.com/OlegIlyenko/scaldi.git"
@OlegIlyenko
OlegIlyenko / create-gh-pages-branch.sh
Created December 11, 2011 19:46
Creating gh-pages branch in git repository
$ cd /path/to/fancypants
$ git symbolic-ref HEAD refs/heads/gh-pages
$ rm .git/index
$ git clean -fdx
import math._
case class Progress(percent: Int, size: Long, remains: Long, done: Long, bps: Long, elapsed: Long, estimated: Long) {
lazy val formattedMetrics= List(
"Progress: " + percent + "%",
"File size: " + formatSize(size),
"Downloaded: " + formatSize(done),
"Remains: " + formatSize(remains),
"Speed: " + (bps / 1024) + " kb/s",
"Elapsed: " + formatTime(elapsed),
import javax.swing.UIManager
import java.net.URL
import java.awt.Dimension
import java.io.Closeable
import swing._
object Downloader extends SimpleSwingApplication {
UIManager.getInstalledLookAndFeels
.filter(_.getName contains "Nimbus").headOption
package scaldi.keys
import math._
import swing._
import java.io.{Closeable, InputStream, FilterInputStream}
import javax.swing.UIManager
import java.net.URL
object Downloader extends SimpleSwingApplication {