Skip to content

Instantly share code, notes, and snippets.

View yangbajing's full-sized avatar

羊八井 yangbajing

View GitHub Profile
@yangbajing
yangbajing / gist:5168243
Last active December 14, 2015 23:49
Scala 也有像C++一样的“方法隐藏”这种情况?
// 代码:
trait A {
def find: String = find("nnn")
def find(s: String): String
}
object B extends A {
def find(s: String) = s + " - B"
}
@yangbajing
yangbajing / gist:5010405
Last active December 14, 2015 01:59
在liftweb 中扩展一个类似 jQuery的方法:$("...").XXX() 和 jQuery("...").XXX()。
package yangbajing.util.web
import scala.xml.{ NodeSeq, Text, Elem }
import net.liftweb.http.js.{ JsExp, JE, JsMember, JsCmd, JsCmds }
import net.liftweb.http.js.jquery.{ JqJE, JqJsCmds }
import net.liftweb.util.StringHelpers._
object jQuery {
def apply(exp: String): jQuery = apply(JE.Str(exp))
@yangbajing
yangbajing / gist:5010139
Last active December 14, 2015 01:59
扩展lift Css Selector为使用jQuery CSS selector 形式。(scala 2.10 +, lift 2.5 RC1 +)
import scala.xml.{ NodeSeq, Text }
import net.liftweb.http.js._
import net.liftweb.util.{ CssSel, CanBind }
import net.liftweb.util.BindHelpers._
object Implicits {
private val _selRegex = new scala.util.matching.Regex("""(\S)+""")
private val _selMatch = Set('*', '-', '[', '^')
object S extends App {
implicit def ddd(i: Long): DDLong = new DDLong(i)
println(100.toDouble)
println(100.toDate)
}
class DDLong(l: Long) {
def toDate = new java.util.Date(l)
@yangbajing
yangbajing / gist:4230333
Created December 7, 2012 02:49
简单的流程定义
{
"name":"default_db:人事考勤:请假申请",
"initializations":[{
"name":"start",
"result":{
"to":"办公室",
"owner":"SE.account().name()"
},
"prefunctions":[],
"postfunctions":[]
@yangbajing
yangbajing / gist:3992836
Created November 1, 2012 09:59
Squery Helpers squeryUsing(不需要事物的帮助方法)
package com.teshengtech.persistence
import org.squeryl.Session
import org.squeryl.SessionFactory
import org.squeryl.PrimitiveTypeMode._
trait SqueryHelpers {
@inline
def squerylUsing[R](func: => R): R =
@yangbajing
yangbajing / gist:3945180
Created October 24, 2012 09:46
Manifest
class MakeFoo[A](implicit manifest: Manifest[A]) {
def make: A = manifest.erasure.newInstance.asInstanceOf[A]
private def test {
val r = scala.math.random
}
}
scala> new MakeFoo[java.util.Date]
@yangbajing
yangbajing / gist:3754875
Created September 20, 2012 09:22
请帮我把build.sbt 改成 Build.scala
name := "ims-platform"
scalaVersion := "2.9.2"
seq(webSettings: _*)
//offline := true
// If using JRebel
scanDirectories in Compile := Nil
@yangbajing
yangbajing / gist:3684635
Created September 9, 2012 14:21
liftweb 2.5改变了 "div *" #> NodeSeq 的实现结果。

2.5:

scala> val in = <div><a/></div>
in: scala.xml.Elem = <div><a></a></div>

scala> val f = "div *" #> <a href="#aa" /><a href="#bb" /><a href="#cc" />
f: net.liftweb.util.CssSel = CssBind(Full(div *), Fu ll(ElemSelector(div,Full(KidsSubNode()))))

scala> f(in)

res1: scala.xml.NodeSeq = NodeSeq(, , )

@yangbajing
yangbajing / gist:3413502
Created August 21, 2012 08:30
String -> JValue -> Xml
package cst
import scala.xml.{ NodeSeq, Text, Node }
import org.scalatest.FlatSpec
import org.scalatest.BeforeAndAfter
import org.scalatest.matchers.ShouldMatchers
import net.liftweb.common.{ Full, Empty, Failure, Box }
import net.liftweb.json.{ Xml, JsonAST, JsonParser }