Skip to content

Instantly share code, notes, and snippets.

View vhazrati's full-sized avatar

Vikas Hazrati vhazrati

View GitHub Profile
@vhazrati
vhazrati / GoogleDispatcher
Created August 2, 2012 10:18
Sign in with Google
package login
import net.liftweb.http.LiftRules
import net.liftweb.http.Req
import net.liftweb.http.GetRequest
import net.liftweb.http.S
import net.liftweb.common.Box
import net.liftweb.http.LiftResponse
import net.liftweb.util.Props
import net.liftweb.common.Full
import net.liftweb.common.Empty
@vhazrati
vhazrati / Scala Idiomatic Error Handling
Created April 10, 2014 19:09
Scala Idiomatic Error Handling
def sayHello(any: Any): Try[String] = {
Try {
any match {
case x: String => "Hello"
case _ => throw new Exception("Huh!")
}
}
} //> sayHello: (any: Any)scala.util.Try[String]
def letMeSayHello = {
@vhazrati
vhazrati / gist:5411842
Created April 18, 2013 10:48
Stacktrace
/room/classroom),,true,false), , GetRequest, Empty)
java.lang.NullPointerException: null
at net.liftweb.mongodb.record.field.JsonObjectField.asJValue(JsonObjectField.scala:45) ~[lift-mongodb-record_2.9.0-1-2.4.jar:2.4]
at net.liftweb.record.MetaRecord$$anonfun$asJValue$1.apply(MetaRecord.scala:274) ~[lift-record_2.9.0-1-2.4.jar:2.4]
at net.liftweb.record.MetaRecord$$anonfun$asJValue$1.apply(MetaRecord.scala:274) ~[lift-record_2.9.0-1-2.4.jar:2.4]
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:194) ~[scala-library.jar:na]
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:194) ~[scala-library.jar:na]
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59) ~[scala-library.jar:na]
at scala.collection.immutable.List.foreach(List.scala:45) ~[scala-library.jar:na]
at scala.collection.TraversableLike$class.map(TraversableLike.scala:194) ~[scala-library.jar:na]
@vhazrati
vhazrati / TwitterDispatcher
Created July 25, 2012 11:15
Twitter Login with Scala
package login
import net.liftweb.http.LiftRules
import net.liftweb.http.Req
import net.liftweb.http.GetRequest
import twitter4j.TwitterException
import twitter4j.TwitterFactory
import net.liftweb.http.S
import net.liftweb.common.Box
import net.liftweb.http.LiftResponse
import net.liftweb.util.Props
@vhazrati
vhazrati / SalatCustomContext
Created April 26, 2012 09:28
SalatCustomContext Remapping
import org.scalatest.FunSuite
import com.novus.salat.annotations.Key
import org.bson.types.ObjectId
import org.specs2.specification.BeforeAfter
import org.scalatest.BeforeAndAfter
import com.novus.salat.dao.SalatDAO
import com.mongodb.casbah.MongoConnection
import org.junit.runner.RunWith
import org.scalatest.junit.JUnitRunner
//import com.novus.salat.global._
@vhazrati
vhazrati / gist:2487883
Created April 25, 2012 07:46
Salat Object
import org.scalatest.FunSuite
import com.novus.salat.annotations.raw.Key
import org.bson.types.ObjectId
import org.specs2.specification.BeforeAfter
import org.scalatest.BeforeAndAfter
import com.novus.salat.dao.SalatDAO
import com.mongodb.casbah.MongoConnection
import org.junit.runner.RunWith
import org.scalatest.junit.JUnitRunner
import com.novus.salat.global._
@vhazrati
vhazrati / PullApplicationActorLess.scala
Created December 21, 2011 11:30
Code changed as per Viktors recommendations
object PullApplicationActorLess extends App {
var context: ZMQ.Context = null
var pullSocket: ZMQ.Socket = null
context = ZMQ.context(5)
pullSocket = context.socket(ZMQ.PULL)
pullSocket.connect("tcp://127.0.0.1:5555")
println("Starting consumer ...")
@vhazrati
vhazrati / PullApplicationActorLess.scala
Created December 19, 2011 10:00
Pulling on a socket
object PullApplicationActorLess extends App {
val TOTAL_MESSAGES = 1000000
val diagnostics = actorOf(new Diagnostics.DiagnosticsActor).start
var context: ZMQ.Context = null
var pullSocket: ZMQ.Socket = null
context = ZMQ.context(1)
pullSocket = context.socket(ZMQ.PULL)
pullSocket.connect("tcp://127.0.0.1:5555")
object play {
println("Welcome to the Scala worksheet")
case class User(id:Int, name:String)
def getUser:User = null
def processUser(u:User):String= u.name
Option(getUser)
Option(getUser).fold("Sky")(u=>processUser(u))
@vhazrati
vhazrati / AdvancedOptions
Created September 16, 2014 13:35
Playing with Options
object OptionPlay {
println("Welcome to the Scala worksheet")
def someCrappyJavaService = null
val result: Option[String] = Some("Hello")
def someProcessingLogic(x: String) = println(s"I would execute when there is some value like $x")
def opSomeProcessingLogic(x: String): Option[String] = { println(s"I would execute when there is some value like $x"); Some("Some String") }
//Standard Way
if (result != None) someProcessingLogic(result.get)
if (result.isDefined) someProcessingLogic(result.get)