Module: VzaarApi::Lib::ActiveObject::Save::InstanceMethods

Defined in:
lib/vzaar_api/lib/active_object.rb

Instance Method Summary collapse

Instance Method Details

#changedObject



50
51
52
# File 'lib/vzaar_api/lib/active_object.rb', line 50

def changed
  changes.keys
end

#changed?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/vzaar_api/lib/active_object.rb', line 46

def changed?
  !changes.empty?
end

#changed_attributesObject



54
55
56
57
58
59
60
# File 'lib/vzaar_api/lib/active_object.rb', line 54

def changed_attributes
  {}.tap do |result|
    changes.each do |attr, vals|
      result[attr] = vals[1]
    end
  end
end

#changesObject



62
63
64
# File 'lib/vzaar_api/lib/active_object.rb', line 62

def changes
  @changes ||= {}
end

#has_changed?(attr) ⇒ Boolean

Returns:

  • (Boolean)


66
67
68
# File 'lib/vzaar_api/lib/active_object.rb', line 66

def has_changed?(attr)
  changed.include? attr.to_sym
end

#saveObject



37
38
39
40
41
42
43
44
# File 'lib/vzaar_api/lib/active_object.rb', line 37

def save
  if changed?
    response = Lib::Api.new.patch(resource_url(id), changed_attributes)
    update_from_attributes response.data
    saved!
  end
  true
end