Skip to content

Instantly share code, notes, and snippets.

View fernandomora's full-sized avatar

Fernando Mora fernandomora

View GitHub Profile
@fernandomora
fernandomora / GroupableOps.scala
Created January 29, 2019 01:20
Scala groupMap from 2.13 for scala 2.12
import scala.collection.{immutable, mutable, GenTraversableOnce}
import scala.collection.generic.CanBuildFrom
object GroupableOps {
implicit class ToGroupable[A, Coll[X] <: GenTraversableOnce[X]](coll: Coll[A]) {
// https://github.com/scala/scala/blob/v2.13.0-M5/src/library/scala/collection/Iterable.scala#L578
def groupMap[K, B, To](key: A => K)(f: A => B)
(implicit bf: CanBuildFrom[Coll[A], B, To]): immutable.Map[K, To] = {
@fernandomora
fernandomora / PrettyDuration.scala
Last active October 22, 2021 21:32
Helper to pretty print scala Duration
package com.intenthq.elasticsearchwriter.duration
import java.util.Locale
import java.util.concurrent.TimeUnit
import scala.concurrent.duration._
object PrettyDuration {
private val abbreviate = Map(
NANOSECONDS -> "ns",
object Main extends App {
case class User(id: String, name: String)
val users = scala.collection.mutable.Map(
"1" -> User("1", "Fernando"),
"2" -> User("1", "Darren"),
)
object UserRepository {
def getUserById(id: String): Option[User] = {