Module: Luban::Deployment::Parameters::Base

Included in:
Application, General, Project
Defined in:
lib/luban/deployment/parameters.rb

Instance Method Summary collapse

Instance Method Details

#parameter(param, default: nil) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/luban/deployment/parameters.rb', line 5

def parameter(param, default: nil)
  define_method(param) do |value = nil|
    value.nil? ? fetch(__method__) : set(__method__, value)
  end
  define_method("set_default_for_#{param}") do
    if default.respond_to?(:call)
      set_default param, instance_exec(&default)
    else 
      set_default param, default
    end
  end
  protected "set_default_for_#{param}"
end