module Attrocity::ModelBuilder::InstanceMethods
Public Instance Methods
model()
click to toggle source
# File lib/attrocity/builders/model_builder.rb, line 23 def model Model.new(attribute_set.to_h.merge(model_attributes_hash)) end
Private Instance Methods
build_attributes_methods()
click to toggle source
# File lib/attrocity/builders/model_builder.rb, line 33 def build_attributes_methods AttributeMethodsBuilder.for_attribute_set(self, attribute_set).build end
init_value_attributes()
click to toggle source
# File lib/attrocity/builders/model_builder.rb, line 29 def init_value_attributes self.class.attribute_set.to_attribute_set(raw_data) end
model_attributes()
click to toggle source
# File lib/attrocity/builders/model_builder.rb, line 46 def model_attributes @model_attributes ||= self.class.model_attribute_set.attributes end
model_attributes_hash()
click to toggle source
# File lib/attrocity/builders/model_builder.rb, line 50 def model_attributes_hash Hash.new.tap do |h| model_attributes.each do |model_attr| name = model_attr.name h[name] = self.send(name) end end end
setup_model_attributes()
click to toggle source
# File lib/attrocity/builders/model_builder.rb, line 37 def setup_model_attributes model_attributes.each do |model_attr| name = model_attr.name define_singleton_method(name) { instance_eval("@#{name} ||= model_attr.model(raw_data)") } end end