Skip to content

Instantly share code, notes, and snippets.

View alari's full-sized avatar

Dmitry Kurinskiy alari

View GitHub Profile
0xEa8eEFB0b08c56787aAAaC9bA08C79e507b07CE9
0xe4fc66037B45F40fE216c363DC582Ab6022A2484
0xCdE4faE237461e4eC3Da70A23Dcc9e9b58A6DC9e
/**
* Rejection rules for a single piece
* @param ort it blocks vertical and horizontal
* @param diag it blocks diagonals
* @param squares it blocks concrete squares: close area for King, two ways to attack for Peasant, 8 squares for Horse
*/
case class Rules(ort: Boolean, diag: Boolean, squares: (Int, Int)*) {
/**
* Cached map of paired rules
*/
@alari
alari / PersistentJson.scala
Created May 7, 2015 06:20
A simple trait to work with bson/json events in akka's persistence
import play.api.libs.json._
import play.modules.reactivemongo.json.ImplicitBSONHandlers._
import reactivemongo.bson.BSONDocument
trait PersistentJson extends akka.persistence.PersistentActor {
private[this] var classMap: Map[Manifest[_], Writes[_]] = Map.empty
private[this] var namesMap: Map[String, Reads[_]] = Map.empty
case class ClassFormat[T](cls: Class[T], format: Format[T])
@alari
alari / FileStorage.scala
Created September 17, 2013 17:09
A FileStorage object using ReactiveMongo and not available to test
package content
import play.api.mvc.MultipartFormData
import play.api.libs.Files
import play.modules.reactivemongo.ReactiveMongoPlugin
import reactivemongo.api.gridfs.GridFS
import user.ProfileId
import scala.concurrent.Future
import reactivemongo.bson._
import java.io.{InputStream, FileInputStream}
@alari
alari / gist:6548013
Created September 13, 2013 08:20
FileStorage class to move gridFS from ReactiveMongo to service layer
package content
import play.api.mvc.MultipartFormData
import play.api.libs.Files
import play.modules.reactivemongo.ReactiveMongoPlugin
import reactivemongo.api.gridfs.GridFS
import user.ProfileId
import scala.concurrent.Future
import reactivemongo.bson.{BSONDocument, BSONObjectID}
import java.io.{InputStream, FileInputStream}