Module: Serialist::InstanceMethods

Defined in:
lib/serialist/serialist_module.rb

Instance Method Summary collapse

Instance Method Details

#serialist_attributes=(new_attributes, guard_protected_attributes = true) ⇒ Object

needed because AR checks with respond_to when doing mass assignment.



89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/serialist/serialist_module.rb', line 89

def serialist_attributes=(new_attributes, guard_protected_attributes = true)
  return if new_attributes.nil? 
  attributes = new_attributes.dup
  attributes.stringify_keys!
  attributes.each do |k, v|
    unless k.include?("(")
      self.class.define_access_method(k + "=") unless respond_to?("#{k}=")  # for mass-affectation
      self.class.define_access_method(k) unless respond_to?(k)              # for validation
    end
  end
  self.send(:old_attributes=, new_attributes, guard_protected_attributes = true)
end

#serialist_method_missing(method, *args, &block) ⇒ Object



102
103
104
105
106
107
108
109
# File 'lib/serialist/serialist_module.rb', line 102

def serialist_method_missing(method, *args, &block)
  begin
    old_method_missing(method, *args, &block)
  rescue NoMethodError
    self.class.define_access_method(method.to_s)
    self.send(method, *args, &block)
  end
end