Sha256: 512f544eee28ad460bb6c5e4877a202076a5d1f57866248c6aefea92d8168f11

Contents?: true

Size: 779 Bytes

Versions: 10

Compression:

Stored size: 779 Bytes

Contents

require 'yaml'
Configliere.use :define
module Configliere
  #
  # EnvVar -- load configuration from environment variables
  #
  module EnvVar
    def env_vars *envs
      envs.each do |env|
        case env
        when Hash
          env.each do |param, env|
            adopt_env_var! param, env
          end
        else
          param = env.to_s.downcase.to_sym
          adopt_env_var! param, env
        end
      end
    end

    def params_from_env_vars
      definitions_for(:env_var)
    end

  protected
    def adopt_env_var! param, env
      env   = env.to_s
      param_definitions[param][:env_var] ||= env
      val = ENV[env]
      self[param] = val if val
    end
  end

  Param.class_eval do
    # include read / save operations
    include EnvVar
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
configliere-0.2.2 lib/configliere/env_var.rb
configliere-0.2.1 lib/configliere/env_var.rb
configliere-0.1.1 lib/configliere/env_var.rb
configliere-0.1.0 lib/configliere/env_var.rb
configliere-0.0.9 lib/configliere/env_var.rb
configliere-0.0.8 lib/configliere/env_var.rb
configliere-0.0.7 lib/configliere/env_var.rb
configliere-0.0.6 lib/configliere/env_var.rb
configliere-0.0.5 lib/configliere/env_var.rb
configliere-0.0.4 lib/configliere/env_var.rb