Skip to content

Instantly share code, notes, and snippets.

@ThomasAlexandre
Created February 15, 2012 20:16
Show Gist options
  • Save ThomasAlexandre/1838722 to your computer and use it in GitHub Desktop.
Save ThomasAlexandre/1838722 to your computer and use it in GitHub Desktop.
JFOKUS 2012 Sample from "One-liners are your friend"
case class Deal( title:String = "", discount:Int = 0, city:String = "" )
val deal = Deal()
val deal = Deal("Hotel")
val deal = Deal("Hotel",city="Paris")
val betterDeal = deal.copy(discount=50)
import dispatch._
val request = url("http://localhost:8086/deals")
Http( request >>> System.out)
val deals = Http( request as_str )
val dealsAsXml = Http( request.handleResponseAsXml({ response => response }) )
val dealsAsXml = Http( request.<>({ response => response }) )
val dealsAsXml = Http( request.<>({ response => response.\\("deal") }) )
val dealsAsXml = Http( request <> { response => response \\ "deal" } )
val deals = dealsAsXml map { d => d \ "title" }
val deals = dealsAsXml map { d => (d \ "title").text }
val deals = dealsAsXml map { d => ((d \ "title").text,(d \ "discount").text,(d \ "city").text) }
val deals = dealsAsXml map { d => Deal((d \ "title").text,(d \ "discount").text,(d \ "city").text) }
val deals = dealsAsXml map { d => Deal((d \ "title").text,(d \ "discount").text.toInt,(d \ "city").text) }
val goodDeals = deals filter { d => d.discount > 20 }
val goodDeals = deals filter { _.discount > 20 }
val (goodDeals,badDeals) = deals partition { d => d.discount > 20 }
val (goodDeals,badDeals) = deals partition { _.discount > 20 }
val goodDealsByCity = goodDeals groupBy { _.city }
val nbOfGoodDealsByCity = goodDealsByCity mapValues { _.size }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment