Skip to content

Instantly share code, notes, and snippets.

View Centaur's full-sized avatar

oldpig Centaur

  • singerdream.com
  • Shanghai
View GitHub Profile
import scala.xml.NodeSeq
import net.liftweb.http.js._
import net.liftweb.http.js.jquery._
def $(exp: String): jQuery = $(JE.Str(exp))
def $(exp: JsExp): jQuery = jQuery(exp)
case class jQuery(exp: JsExp) {
@Centaur
Centaur / gist:5055309
Created February 28, 2013 08:55
collect file paths
(ns collect.core
(:require [clojure.java.io :as io]))
(defn fromRoot [rootDir]
(doseq
[f (->> (io/file rootDir)
.listFiles
(filter #(.endsWith (.getName %) ".jar"))
(map #(str "lib/" (.getName %))))]
@Centaur
Centaur / gist:5075737
Created March 3, 2013 11:35
身份证号验证
object IDCard {
case class IDCard(raw: String) {
def verification(data: String) = {
val first17 = data.substring(0, 17)
val seq = for (ch <- first17; weight <- IDCard.WEIGHT) yield ch.getNumericValue * weight
IDCard.VERIFICATION_CODE(seq.sum % 11)
}
val normalized = raw.length match {
case 15 => raw.splitAt(6) match {
@Centaur
Centaur / Main.java
Created June 22, 2013 05:44
scalafx borderpane layout error
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.TextAreaBuilder;
import javafx.scene.control.TreeView;
import javafx.scene.layout.BorderPaneBuilder;
import javafx.stage.Stage;
import javafx.scene.layout.BorderPane;
public class Main extends Application {
@Centaur
Centaur / Book.scala
Created July 18, 2013 10:26
for 饼干
trait CanContain[T <: CanContain[T]]{
def contains(v: T):Boolean
}
trait Searchable[T <: CanContain[T]]{
val data: T
def contains(v: T):Boolean = this.data.contains(v)
}
case class Image(bytes: Array[Int]) extends CanContain[Image]{
@Centaur
Centaur / InheritParent.scala
Created July 27, 2013 13:46
Inherit Parent
package net.oschina.oldpig
import javafx.scene.{Node, Parent}
object InheritParent {
implicit class SParent[T <: Parent](parent: T) extends Parent {
// override protected def getChildren = parent.getChildren
def apply(children: Seq[Node]) = {
println(children)
@Centaur
Centaur / fromScalaConsole.scala
Last active December 27, 2015 23:39
practice
trait Tree
case object Empty extends Tree
case class Node(i: Int, left:Tree, right:Tree) extends Tree
def show(tree: Tree) : String // implement this method
/* Test Cases
import akka.actor._
import scala.concurrent.duration.Duration
trait CommonReceive extends Actor {
def commonReceive: Receive = {
case "Mesage" => //
}
abstract override def receive = super.receive orElse commonReceive
@Centaur
Centaur / ServiceCombiner.scala
Created December 17, 2013 14:32
spray service combiner
package com.cipinvestment
import spray.routing.{HttpService, Route}
import akka.actor.{ActorRefFactory, Actor}
trait ServiceCombiner extends HttpService {
val combinedRoute: List[Route] = Nil
}
trait Service1 extends ServiceCombiner {
path("login") {
post {
formFields('username, 'password) { (username, password) =>
val queryResult = (db ? Admin(username, password).find).mapTo[QueryResult]
onSuccess(queryResult) { qr =>
qr.rows match {
case Some(Seq(single: RowData)) =>
onSuccess(createSession(single)) { session_id =>
setCookie(HttpCookie(identity_cookie_name, session_id)) {
redirect("/admin/index", StatusCodes.SeeOther)