Module: Carpenter::Model::Modules::Params
- Defined in:
- lib/struct_declaration.rb,
lib/carpenter/model/modules/params.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(base) ⇒ Object
2 3 4 |
# File 'lib/carpenter/model/modules/params.rb', line 2 def self.included(base) base.extend(ClassMethods) end |
Instance Method Details
#initialize_params(*args, **params) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/carpenter/model/modules/params.rb', line 8 def initialize_params(*args, **params) raise 'Ambiguous attributes' if args.any? && params.any? @carpenter__model__params = {} params = self.class.instance_variable_get(:@carpenter__model__params).keys.zip(args).to_h if params.empty? self.class.instance_variable_get(:@carpenter__model__params).each do |param_name, param_value| param = param_value.dup param.value = params[param_name] raise "Invalid param" unless param.valid? @carpenter__model__params[param_name] = param end end |
#params ⇒ Object
6 |
# File 'lib/carpenter/model/modules/params.rb', line 6 def params = @carpenter__model__params.values |