Class: Configus::Builder
- Inherits:
-
Object
- Object
- Configus::Builder
- Defined in:
- lib/configus/builder.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(current_env, block) ⇒ Builder
constructor
A new instance of Builder.
- #result(env = nil) ⇒ Object
Constructor Details
#initialize(current_env, block) ⇒ Builder
Returns a new instance of Builder.
11 12 13 14 15 |
# File 'lib/configus/builder.rb', line 11 def initialize(current_env, block) @current_env = current_env.to_sym @envs = {} instance_eval &block end |
Class Method Details
Instance Method Details
#result(env = nil) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/configus/builder.rb', line 17 def result(env = nil) env_name = env || @current_env e = @envs[env_name] unless e raise "Call undefined env '#{env_name}'" end current_config = {} if e[:block] current_config = Proxy.generate(e[:block]) end parent = e[:options][:parent] if parent parent_config = result(parent) current_config = parent_config.deep_merge!(current_config) end current_config end |