Sha256: c23107a80ba2f25ecfc985f411d83d0be9d3ee25897f7b5654b0787659661b61

Contents?: true

Size: 662 Bytes

Versions: 3

Compression:

Stored size: 662 Bytes

Contents

module Racecar
  class EnvLoader
    def initialize(env, config)
      @env = env
      @config = config
    end

    def string(name)
      set(name) {|value| value }
    end

    def integer(name)
      set(name) do |value|
        begin
          Integer(value)
        rescue ArgumentError
          raise ConfigError, "#{value.inspect} is not an integer"
        end
      end
    end

    def string_list(name)
      set(name) {|value| value.split(",") }
    end

    private

    def set(name)
      key = "RACECAR_#{name.upcase}"

      if @env.key?(key)
        value = yield @env.fetch(key)
        @config.set(name, value)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
racecar-0.2.1 lib/racecar/env_loader.rb
racecar-0.2.0 lib/racecar/env_loader.rb
racecar-0.1.4 lib/racecar/env_loader.rb