Module: Carpenter::Model::Modules::Params::ClassMethods
- Defined in:
- lib/carpenter/model/modules/params.rb
Class Method Summary collapse
Instance Method Summary collapse
- #carpenter__model__create_param(name, **options) ⇒ Object
- #carpenter__model__define_param_getter(name) ⇒ Object
- #carpenter__model__define_param_setter(name) ⇒ Object
- #inherited(klass) ⇒ Object
- #param(name, **options) ⇒ Object
- #params ⇒ Object
Class Method Details
.extended(base) ⇒ Object
24 25 26 |
# File 'lib/carpenter/model/modules/params.rb', line 24 def self.extended(base) base.instance_variable_set(:@carpenter__model__params, {}) end |
Instance Method Details
#carpenter__model__create_param(name, **options) ⇒ Object
41 42 43 |
# File 'lib/carpenter/model/modules/params.rb', line 41 def carpenter__model__create_param(name, **) @carpenter__model__params[name] = Carpenter::Model::Param.new(name, nil, **) end |
#carpenter__model__define_param_getter(name) ⇒ Object
45 46 47 |
# File 'lib/carpenter/model/modules/params.rb', line 45 def carpenter__model__define_param_getter(name) define_method(name) { @carpenter__model__params[name] } end |
#carpenter__model__define_param_setter(name) ⇒ Object
49 50 51 |
# File 'lib/carpenter/model/modules/params.rb', line 49 def carpenter__model__define_param_setter(name) define_method("#{name}=") { |value| @carpenter__model__params[name].set(value) } end |
#inherited(klass) ⇒ Object
30 31 32 33 |
# File 'lib/carpenter/model/modules/params.rb', line 30 def inherited(klass) klass.instance_variable_set(:@carpenter__model__params, @carpenter__model__params.dup) super end |
#param(name, **options) ⇒ Object
35 36 37 38 39 |
# File 'lib/carpenter/model/modules/params.rb', line 35 def param(name, **) carpenter__model__create_param(name, **) carpenter__model__define_param_getter(name) carpenter__model__define_param_setter(name) end |
#params ⇒ Object
28 |
# File 'lib/carpenter/model/modules/params.rb', line 28 def params = @carpenter__model__params.values |