Class: PluckMap::AttributeBuilder
- Inherits:
- BasicObject
- Defined in:
- lib/pluck_map/attribute_builder.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(attributes, model) ⇒ AttributeBuilder
constructor
A new instance of AttributeBuilder.
- #method_missing(attribute_name, *args) ⇒ Object
Constructor Details
#initialize(attributes, model) ⇒ AttributeBuilder
Returns a new instance of AttributeBuilder.
18 19 20 21 |
# File 'lib/pluck_map/attribute_builder.rb', line 18 def initialize(attributes, model) @attributes = attributes @model = model end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(attribute_name, *args) ⇒ Object
23 24 25 26 27 28 |
# File 'lib/pluck_map/attribute_builder.rb', line 23 def method_missing(attribute_name, *args) = args. [:value] = args.first unless args.empty? @attributes.push Attribute.new(attribute_name, @model, ) :attribute_added end |
Class Method Details
.build(model:, &block) ⇒ Object
7 8 9 10 11 12 13 14 15 16 |
# File 'lib/pluck_map/attribute_builder.rb', line 7 def self.build(model:, &block) attributes = [] builder = self.new(attributes, model) if block.arity == 1 block.call(builder) else builder.instance_eval(&block) end Attributes.new(attributes) end |