From 65d9d44714d38614c73596e294cb93bfbeb6a51c Mon Sep 17 00:00:00 2001 From: kazuki Date: Thu, 18 Jun 2020 15:12:40 +0900 Subject: [PATCH 1/4] add foreach docs --- core/src/main/scala/cats/data/Ior.scala | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/core/src/main/scala/cats/data/Ior.scala b/core/src/main/scala/cats/data/Ior.scala index a196ac052e..b929ee0e09 100644 --- a/core/src/main/scala/cats/data/Ior.scala +++ b/core/src/main/scala/cats/data/Ior.scala @@ -576,6 +576,21 @@ sealed abstract class Ior[+A, +B] extends Product with Serializable { } } + /** + * Example: + * {{{ + * scala> import cats.data.Ior + * scala> import cats.implicits._ + * + * scala> "abc".leftIor[Int].foreach(println) // Nothing to show + * + * scala> 123.rightIor[String].foreach(println) + * 123 + * + * scala> Ior.both("abc", 123).foreach(println) + * 123 + * }}} + */ final def foreach(f: B => Unit): Unit = { bimap(_ => (), f) () From 6fb459a61f7c14701d9555ba177d9c1b2cba8445 Mon Sep 17 00:00:00 2001 From: kazuki Date: Thu, 18 Jun 2020 15:30:25 +0900 Subject: [PATCH 2/4] add traverse doc --- core/src/main/scala/cats/data/Ior.scala | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/core/src/main/scala/cats/data/Ior.scala b/core/src/main/scala/cats/data/Ior.scala index b929ee0e09..b228d32bac 100644 --- a/core/src/main/scala/cats/data/Ior.scala +++ b/core/src/main/scala/cats/data/Ior.scala @@ -596,6 +596,22 @@ sealed abstract class Ior[+A, +B] extends Product with Serializable { () } + /** + * Example + * {{{ + * scala> import cats.data.Ior + * scala> import cats.implicits._ + * + * scala> "abc".leftIor[Int].traverse(i => List(i, i * 2)) + * val res0: List[Ior[String,Int]] = List(Left(abc)) + * + * scala> 123.rightIor[String].traverse(i => List(i, i * 2)) + * val res1: List[Ior[String,Int]] = List(Right(123), Right(246)) + * + * scala> Ior.both("abc", 123).traverse(i => List(i, i * 2)) + * val res2: List[Ior[String,Int]] = List(Both(abc,123), Both(abc,246)) + * }}} + */ final def traverse[F[_], AA >: A, D](g: B => F[D])(implicit F: Applicative[F]): F[AA Ior D] = this match { case Ior.Left(a) => F.pure(Ior.left(a)) From bbb9f8ff15f43d4bc9619d706b7c2db29a3b41af Mon Sep 17 00:00:00 2001 From: kazuki Date: Thu, 18 Jun 2020 21:05:08 +0900 Subject: [PATCH 3/4] fix wrong doc --- core/src/main/scala/cats/data/Ior.scala | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/core/src/main/scala/cats/data/Ior.scala b/core/src/main/scala/cats/data/Ior.scala index b228d32bac..1763aae43f 100644 --- a/core/src/main/scala/cats/data/Ior.scala +++ b/core/src/main/scala/cats/data/Ior.scala @@ -582,13 +582,17 @@ sealed abstract class Ior[+A, +B] extends Product with Serializable { * scala> import cats.data.Ior * scala> import cats.implicits._ * - * scala> "abc".leftIor[Int].foreach(println) // Nothing to show + * // Nothing to show + * scala> "abc".leftIor[Int].foreach(println) + * res0: Unit = () * + * // 123 to be shown * scala> 123.rightIor[String].foreach(println) - * 123 + * res1: Unit = () * + * 123 to be shown * scala> Ior.both("abc", 123).foreach(println) - * 123 + * res2: Unit = () * }}} */ final def foreach(f: B => Unit): Unit = { @@ -603,10 +607,10 @@ sealed abstract class Ior[+A, +B] extends Product with Serializable { * scala> import cats.implicits._ * * scala> "abc".leftIor[Int].traverse(i => List(i, i * 2)) - * val res0: List[Ior[String,Int]] = List(Left(abc)) + * res0: List[Ior[String,Int]] = List(Left(abc)) * * scala> 123.rightIor[String].traverse(i => List(i, i * 2)) - * val res1: List[Ior[String,Int]] = List(Right(123), Right(246)) + * res1: List[Ior[String,Int]] = List(Right(123), Right(246)) * * scala> Ior.both("abc", 123).traverse(i => List(i, i * 2)) * val res2: List[Ior[String,Int]] = List(Both(abc,123), Both(abc,246)) From 071e4a4515460a56eb86016ea03522b84e6626f6 Mon Sep 17 00:00:00 2001 From: kazchimo <31263328+kazchimo@users.noreply.github.com> Date: Thu, 18 Jun 2020 23:09:16 +0900 Subject: [PATCH 4/4] Update core/src/main/scala/cats/data/Ior.scala Co-authored-by: Filippo Mariotti --- core/src/main/scala/cats/data/Ior.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/scala/cats/data/Ior.scala b/core/src/main/scala/cats/data/Ior.scala index 1763aae43f..51d29772ae 100644 --- a/core/src/main/scala/cats/data/Ior.scala +++ b/core/src/main/scala/cats/data/Ior.scala @@ -613,7 +613,7 @@ sealed abstract class Ior[+A, +B] extends Product with Serializable { * res1: List[Ior[String,Int]] = List(Right(123), Right(246)) * * scala> Ior.both("abc", 123).traverse(i => List(i, i * 2)) - * val res2: List[Ior[String,Int]] = List(Both(abc,123), Both(abc,246)) + * res2: List[Ior[String,Int]] = List(Both(abc,123), Both(abc,246)) * }}} */ final def traverse[F[_], AA >: A, D](g: B => F[D])(implicit F: Applicative[F]): F[AA Ior D] =