# Responsibilities:
#
# read configuration params and make them available
#
FromEnv = require "./fromEnv"
FromJSON = require "./fromJSON"

class Config
    @configFile: "hapi.config.json"

    @init: ->
        # the position of the readers determines the priority
        # lower index higher priority
        fromEnv = new FromEnv
        env = fromEnv.get("APP_ENV") or "development"
        @providers = [
            new FromJSON(@configFile, env)
            fromEnv
        ]

    @load: ->
        @init()
        provider.load() for provider in @providers

    @get: (name) ->
        for provider in @providers
            value = provider.get(name)
            return value if value?
        return undefined

module.exports = Config
