Module: HttpApiTools::Model::Attributes

Defined in:
lib/http_api_tools/model/attributes.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#attributesObject



34
35
36
# File 'lib/http_api_tools/model/attributes.rb', line 34

def attributes
  self.class._attributes
end

#has_many_changed(has_many_name) ⇒ Object



38
39
40
# File 'lib/http_api_tools/model/attributes.rb', line 38

def has_many_changed(has_many_name)
  send("#{has_many_name.to_s.singularize}_ids=", send(has_many_name).map(&:id).compact)
end

#initialize(attrs = {}) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/http_api_tools/model/attributes.rb', line 21

def initialize(attrs = {})

  attrs = attrs.with_indifferent_access

  attributes.each do |attr_name, attr_options|
    raw_value = attrs[attr_name] == nil ? default_for(attr_options) : attrs[attr_name]
    set_raw_value(attr_name, raw_value, true) unless raw_value == nil
  end

  self.errors = attrs[:errors] || {}

end