Module: Carpenter::Model::Modules::Params::ClassMethods

Defined in:
lib/carpenter/model/modules/params.rb

Class Method Summary collapse

Instance Method Summary collapse

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, **options)
  @carpenter__model__params[name] = Carpenter::Model::Param.new(name, nil, **options)
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, **options)
  carpenter__model__create_param(name, **options)
  carpenter__model__define_param_getter(name)
  carpenter__model__define_param_setter(name)
end

#paramsObject



28
# File 'lib/carpenter/model/modules/params.rb', line 28

def params = @carpenter__model__params.values