diff --git a/src/main/scala/io/github/databob/Databob.scala b/src/main/scala/io/github/databob/Databob.scala index 6456c67..9684325 100644 --- a/src/main/scala/io/github/databob/Databob.scala +++ b/src/main/scala/io/github/databob/Databob.scala @@ -57,7 +57,7 @@ object Databob { * @param mf manifest for the object to generate * @return the generated object */ - def mk[A](implicit generators: Generators = Empty, mf: Manifest[A]): A = new Databob(generators).mk[A] + def mk[A](implicit generators: Generators = EmptyGenerators, mf: Manifest[A]): A = new Databob(generators).mk[A] /** * Make a default object using the overrides provided and falling back to the set of Default generators @@ -65,7 +65,7 @@ object Databob { * @param mf manifest for the object to generate * @return the generated object */ - def default[A](implicit overrides: Generators = Empty, mf: Manifest[A]): A = mk[A](overrides ++ Defaults, mf) + def default[A](implicit overrides: Generators = EmptyGenerators, mf: Manifest[A]): A = mk[A](overrides ++ Defaults, mf) /** * Make a random object using the overrides provided and falling back to the set of Random generators @@ -73,5 +73,7 @@ object Databob { * @param mf manifest for the object to generate * @return the generated object */ - def random[A](implicit overrides: Generators = Empty, mf: Manifest[A]): A = mk[A](overrides ++ Random, mf) + def random[A](implicit overrides: Generators = EmptyGenerators, mf: Manifest[A]): A = { + mk[A](overrides ++ Random, mf) + } } diff --git a/src/main/scala/io/github/databob/Generator.scala b/src/main/scala/io/github/databob/Generator.scala index 74d85cf..11e1cb4 100644 --- a/src/main/scala/io/github/databob/Generator.scala +++ b/src/main/scala/io/github/databob/Generator.scala @@ -1,5 +1,6 @@ package io.github.databob +import io.github.databob.generators.Generators._ import io.github.databob.generators.{ErasureMatchingGenerator, Generators, TypeMatchingGenerator} /** @@ -19,7 +20,7 @@ trait Generator[A] { * @param that the generator to append * @return the combined Generators */ - def +(that: Generator[_]): Generators = this +: (that +: Generators.Empty) + def +(that: Generator[_]): Generators = this +: (that +: EmptyGenerators) } object Generator { diff --git a/src/main/scala/io/github/databob/generators/Generators.scala b/src/main/scala/io/github/databob/generators/Generators.scala index ee3d396..137a56e 100644 --- a/src/main/scala/io/github/databob/generators/Generators.scala +++ b/src/main/scala/io/github/databob/generators/Generators.scala @@ -47,7 +47,7 @@ class Generators(generators: Iterable[Generator[_]] = Nil) extends Iterable[Gene object Generators { - lazy val Empty = new Generators() + lazy val EmptyGenerators = new Generators() lazy val Defaults = PrimitiveGenerators.Defaults ++ diff --git a/src/test/scala/databob/examples/Examples.scala b/src/test/scala/databob/examples/Examples.scala index 450c377..adc1257 100644 --- a/src/test/scala/databob/examples/Examples.scala +++ b/src/test/scala/databob/examples/Examples.scala @@ -4,10 +4,9 @@ import java.time.ZonedDateTime import io.github.databob.Databob import io.github.databob.Generator.typeIs -import io.github.databob.generators.CollectionSizeRange -import io.github.databob.generators.CollectionSizeRange.collectionSizeRange +import io.github.databob.generators.CollectionSizeRange._ +import io.github.databob.generators.{CollectionSizeRange, Generators} -import scala.collection.immutable.Stream.Empty import scala.util.Try case class ReadReceipt(readDate: ZonedDateTime) @@ -36,14 +35,16 @@ object Examples extends App { println(randomObjectWithOverridenField) def objectWithCustomCollectionSizes = { - implicit val generators = collectionSizeRange(() => CollectionSizeRange(3, 5)) + implicit val generators = collectionSizeRange(CollectionSizeRange(3, 5)) Databob.random[Email] } println(objectWithCustomCollectionSizes) def usingACustomGenerator = { - implicit val generators = typeIs(databob => EmailAddress(databob.mk[String] + "@" + databob.mk[String] + ".com")) +: Empty + implicit val generators = typeIs(databob => { + EmailAddress(databob.mk[String] + "@" + databob.mk[String] + ".com") + }) +: Generators.EmptyGenerators Databob.random[Email] }