t

zio.config

ConfigDocsModule

trait ConfigDocsModule extends WriteModule

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ConfigDocsModule
  2. WriteModule
  3. ConfigDescriptorModule
  4. ConfigSourceModule
  5. KeyValueModule
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. sealed trait ConfigDescriptor[A] extends AnyRef
    Definition Classes
    ConfigDescriptorModule
  2. trait ConfigDescriptorFunctions extends AnyRef
    Definition Classes
    ConfigDescriptorModule
  3. sealed trait ConfigDocs extends AnyRef

    ConfigDocs holds the descriptions and details of a ConfigDescriptor which can be used to produce documentation.

  4. type K = String
    Definition Classes
    ConfigSourceModuleKeyValueModule
  5. sealed case class Table(rows: List[TableRow]) extends Product with Serializable

    A Table is a recursive structure that is more easier to be interpreted as Json or Markdown than trying to convert ConfigDocs to a readable format.

  6. type V = String
    Definition Classes
    ConfigSourceModuleKeyValueModule
  7. sealed trait ConfigSource extends AnyRef

    Every ConfigSource at the core is just a Reader, which is essentially a function that goes from PropertyTreePath to an actual PropertyTree.

    Every ConfigSource at the core is just a Reader, which is essentially a function that goes from PropertyTreePath to an actual PropertyTree. i.e, f: PropertyTreePath[String] => IO[ReadError[String], PropertyTree[String, String] Later on for each key represented as PropertyTreePath[String] internally, f is used to applied to get the value as a PropertyTree itself.

    Internal details:

    This function f can be retrieved under an ZManaged effect. This implies it may involve an IO with managing resources to even form this function. Example: In order to retrieve a property-tree corresponding to a key (PropertyTreePath), it requires a database connection in the very first instance.

    // pseudo-logic, doesn't compile

    val source: ConfigSource = ConfigSource.Reader( ZManaged(getDatabaseConnection) .flatMap(connection => (key: PropertyTreePath[String] => IO.effect(connection.getStatement.executeQuery(s"get key from table"))) )

    Note that ConfigSource has a generalised memoize function that allows you to memoize the effect required to form the function. In the context of the above example, with source.memoize we acquire only a single connection to retrieve the values for all the keys in your product/coproduct for an instance of read.

    Definition Classes
    ConfigSourceModule

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def generateDocs[A](config: ConfigDescriptor[A]): ConfigDocs

    Generate documentation based on the ConfigDescriptor, where a ConfigDescriptor is a structure representing the logic to fetch the application config from various sources.

    Generate documentation based on the ConfigDescriptor, where a ConfigDescriptor is a structure representing the logic to fetch the application config from various sources.

    Once we generate the docs, this can be converted to a light weight Table structure which is much more easier to be converted to markdown or json formats.

    Example :

    val configDescriptor: ConfigDescriptor[MyAppConfig] = ???
    
    generatedDocs(configDescriptor).toTable.toGithubFlavouredMarkdown
  10. def generateReport[A](config: ConfigDescriptor[A], value: A): Either[String, ConfigDocs]

    Generate a report based on the ConfigDescriptor and an A, where a ConfigDescriptor represents the logic to fetch the application config from various sources, and A represents the actual config value that was retrieved.

  11. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  16. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  17. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  18. def toString(): String
    Definition Classes
    AnyRef → Any
  19. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  20. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  22. final def write[A](config: ConfigDescriptor[A], a: A): Either[String, PropertyTree[K, V]]
    Definition Classes
    WriteModule
  23. object Table extends Serializable
  24. object ConfigSource
    Definition Classes
    ConfigSourceModule

Inherited from WriteModule

Inherited from ConfigDescriptorModule

Inherited from ConfigSourceModule

Inherited from KeyValueModule

Inherited from AnyRef

Inherited from Any

Ungrouped