Code Monkey home page Code Monkey logo

kea's People

Contributors

lewismj avatar

Watchers

 avatar  avatar

kea's Issues

Fix for case classes.

Generic Reader needs lazy schema

implicit def genericReader[A](implicit s: Lazy[Schema[A]]): ConfigReader[A]
= (config: Config, path: String) => s.value.from(config, path)

And

Similarly,
implicit def parsing[K <: Symbol, V, T <: HList](
implicit key: Witness.Aux[K],
next: Schema[T],
mapper: FieldNameMapper = DefaultFieldNameMapper,
reader: Lazy[ConfigReader[V]]): Schema[FieldType[K, V] :: T] = {

  Schema.instance { (config, path) =>
    val fieldName = key.value.name
    val f = reader.value.get(config, path + "." + mapper.replace(fieldName)).map(f => field[K](f))
    (f |@| next.from(config, path)).map(_ :: _)
  }
}

environment variables

Possibly always call cfg.resolve on incoming configuration items so that environment variables are resolved automatically.

Add support for case class

Given something like:

 case class Foo(s: String, i: Int, b: Boolean, d: Double, l: Long)
  object Foo {
    def apply(config: Config): ValidatedNel[Foo] =
      (config.as[String]("example.foo.some-string") |@|
        config.as[Int]("example.foo.some-int") |@|
        config.as[Boolean]("example.foo.some-boolean") |@|
        config.as[Double]("example.foo.some-double") |@|
        config.as[Long]("example.foo.some-long")).map(Foo.apply)
  }

It should be possible to write something like

config.get[Foo]("example")

assuming (initially) the field names match the property names in the config file.
Think this should be doable (neatly) without macros, maybe using Shapeless.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.