Skip to content

Instantly share code, notes, and snippets.

Avatar

Alexandre Berthaud urcadox

View GitHub Profile
View constraint.sql
alter table records
add constraint cname_single_record_per_name_a
exclude using gist (name with =, "type" with <>)
where ("type" IN ('A', 'CNAME'));
View keybase.md

Keybase proof

I hereby claim:

  • I am urcadox on github.
  • I am urcadox (https://keybase.io/urcadox) on keybase.
  • I have a public key whose fingerprint is 7C92 56D4 AB89 2A42 1D0F FDBF F19E 634D 4F24 A5C7

To claim this, I am signing this object:

@urcadox
urcadox / repl_2.5.scala
Last active Jan 22, 2020
Creating an instance of a class with injected components in Play 2.5.x / 2.6.x / 2.7.x / 2.8.x REPL
View repl_2.5.scala
// For Play 2.5.x and 2.6.x
// After starting the application in the console (https://www.playframework.com/documentation/2.5.x/PlayConsole#launch-the-interactive-console)
import play.api._
val env = Environment(new java.io.File("."), this.getClass.getClassLoader, Mode.Dev)
val context = ApplicationLoader.createContext(env)
val loader = ApplicationLoader(context)
val app = loader.load(context)
Play.start(app)
@urcadox
urcadox / Filters.scala
Created Nov 18, 2016
Play 2.5 HTTPS redirection on Clever Cloud
View Filters.scala
package controllers
import javax.inject._
import play.api._
import play.api.http.DefaultHttpFilters
import play.api.mvc._
import play.api.Environment
import scala.concurrent.{ExecutionContext, Future}
import akka.stream.Materializer
@urcadox
urcadox / Filters.scala
Created Feb 11, 2016
Play 2.4.6 HTTPS filter
View Filters.scala
package controllers;
import play.api._
import play.api.http.HttpFilters
import play.api.mvc._
import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global
import play.api.Play.current
View keybase.md

Keybase proof

I hereby claim:

  • I am urcadox on github.
  • I am urcadox (https://keybase.io/urcadox) on keybase.
  • I have a public key whose fingerprint is E43B 1323 D806 A25A AD59 1A27 07D6 60E5 E621 D21D

To claim this, I am signing this object:

View gist:fe010243520e79c9a25b
import org.joda.time.format.ISODateTimeFormat
implicit val dateTimeBinder = new QueryStringBindable.Parsing[DateTime](
ISODateTimeFormat.dateTime.parseDateTime _,
ISODateTimeFormat.dateTime.print _,
(key: String, e: Exception) => s"Cannot parse parameter $key as DateTime: ${e.getMessage}"
)
View keybase.md

Keybase proof

I hereby claim:

  • I am urcadox on github.
  • I am urcadox (https://keybase.io/urcadox) on keybase.
  • I have a public key whose fingerprint is BDF6 8233 D3C1 176E 70D4 99B9 88C0 73AD 16FB 3109

To claim this, I am signing this object:

@urcadox
urcadox / gist:9620563
Created Mar 18, 2014
Excerpt of a Global.scala file from a Play project - on error handler
View gist:9620563
object Global extends WithFilters(new GzipFilter()) with DBeable {
/* [...] */
override def onError(request: RequestHeader, ex: Throwable) = {
import _root_.util.Mailer
val exId = ex match {
case e: PlayException => Some(e.id)
case _ => None
@urcadox
urcadox / Intervals.scala
Last active Jan 4, 2016
Get the opposite of a List[Interval] in Scala
View Intervals.scala
import org.joda.time.{Interval, Instant}
val intervals = List(
new Interval(new Instant("2014-01-25T12:00"), new Instant("2014-01-27T08:00")),
new Interval(new Instant("2014-01-27T18:00"), new Instant("2014-01-28T08:00")),
new Interval(new Instant("2014-01-28T18:00"), new Instant("2014-01-29T08:00")),
new Interval(new Instant("2014-01-29T18:00"), new Instant("2014-01-30T08:00")),
new Interval(new Instant("2014-01-30T18:00"), new Instant("2014-01-31T08:00")),
new Interval(new Instant("2014-01-31T18:00"), new Instant("2014-02-01T08:00")),
new Interval(new Instant("2014-02-01T12:00"), new Instant("2014-02-03T08:00")),
You can’t perform that action at this time.