View scala_play_css_tip.txt
def css = Action { | |
val css: TxtFormat.Appendable =views.txt.css() | |
Ok(css).as("text/css") | |
} | |
inside HTML | |
<link rel="stylesheet" href="@routes.HomeController.css()"/> | |
View NullBooleanReads.scala
implicit object NullBooleanReads extends Reads[Boolean] { | |
def reads(json: JsValue): JsSuccess[Boolean] = json match { | |
case JsBoolean(b) => JsSuccess(b) | |
case _ => JsSuccess(false) | |
} | |
} |
View CatsSemigroupK.scala
import cats._ | |
import cats.implicits._ | |
// Cats SemigroupK vs Semigroup | |
object CatsSemigroupK extends App { | |
// semigroupK doesn't care about contents |
View CatsFlatmap,scala
import cats._ | |
import cats.implicits._ | |
// Example usage of Cats Flatmap | |
object CatsFlatmap extends App { | |
val listFlatMap=FlatMap[List] | |
val li=List(1,2,3) |
View CatsAp.scala
import cats._ | |
import cats.implicits._ | |
// Cats Apply, does cartesian maps, extends Functor and Semigroupal (which does cartesian joins, unlike pairwise Align) | |
object CatsAp extends App { | |
val apOption=Apply[Option] | |
val option1: Option[(Int, Int)] =apOption.product(Option(1), Option(2)) |
View CovariantExample.scala
// take out the + and see the last few lines fail as doit then only takes Animal, and not its subtypes | |
// we output A, so + is fine, we are covariant | |
sealed trait ThisThatValue[+A] | |
object ThisThatValue { | |
final case class This[+A](value: A) extends ThisThatValue[A] | |
final case class That[+A](value: A) extends ThisThatValue[A] | |
} |
View CatsBi.scala
import cats._ | |
import cats.data._ | |
import cats.syntax._ | |
import cats.implicits._ | |
object CatsBi extends App { | |
val fail = Left("failed") | |
val ok = Right(123) |
View CatsAlign.scala
import cats._ | |
import cats.data._ | |
import cats.syntax._ | |
import cats.implicits._ | |
object CatsAlign extends App { | |
val alOption=Align[Option] | |
val iorO: Option[Ior[Int, Int]] =alOption.align(Option(1), Option(2)) |
View OkScalaTorSocksSttp.scala
// Shows how to use okhttp and sttp in Scala asynchronously to talk to a Tor onion address via a Tor socks proxy, | |
// without trying to resolve DNS outside of proxy (few http clients do this properly and instead return UnknownHostException) | |
// libraryDependencies ++= Seq("com.squareup.okhttp3" % "okhttp" % "4.7.2", | |
// "com.softwaremill.sttp.client" %% "okhttp-backend" % "2.1.2")) | |
import java.io.IOException | |
import java.net.{InetSocketAddress, Proxy} | |
import okhttp3.{Call, Callback, OkHttpClient, Request, Response} |
View CatFold.scala
import cats._ | |
import cats.data._ | |
import cats.syntax._ | |
import cats.implicits._ | |
object CatFold extends App{ | |
// list of Tuple[Int, Double] | |
println(List((20,1.1),(29,2.2)).combineAllOption) |
NewerOlder