Sha256: 229ccdf681dcd5603a2e1f7e7bc7dac6570bc1429b9f198078e35749890b3765

Contents?: true

Size: 811 Bytes

Versions: 1

Compression:

Stored size: 811 Bytes

Contents

require 'yaml'
require 'erb'
require 'dotenv'
require 'ostruct'
require 'logger'
require 'thron/root'

module Thron
  module Config
    extend self

    CONFIG_YML = Thron::root.join('config', 'thron.yml')

    def dump_yaml
      Dotenv.load
      @yaml ||= YAML.load(ERB.new(File.read(CONFIG_YML)).result)
    end

    def logger
      @logger ||= begin
                    level = dump_yaml.fetch('logger').fetch('level')
                    verbose = dump_yaml.fetch('logger').fetch('verbose')
                    OpenStruct.new(level: Logger::const_get(level.upcase), verbose: verbose)
                  end
    end

    def circuit_breaker
      @circuit_breaker ||= OpenStruct.new(dump_yaml['circuit_breaker'])
    end

    def thron
      @thron ||= OpenStruct.new(dump_yaml['thron'])
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
thron-0.7.0 lib/thron/config.rb