Module: Frame::APIOperations::Save

Instance Method Summary collapse

Instance Method Details

#save(params = {}, opts = {}) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/frame/api_operations/save.rb', line 6

def save(params = {}, opts = {})
  values = serialize_params(self).merge(params)

  if values.empty?
    return self
  end

  updated = request_object(
    :patch,
    resource_url,
    values,
    opts
  )

  initialize_from(updated)
  self
end

#serialize_params(obj) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/frame/api_operations/save.rb', line 24

def serialize_params(obj)
  params = {}

  update_attributes = @values.keys.select do |k|
    @original_values.key?(k) && @values[k] != @original_values[k]
  end

  update_attributes.each do |attr|
    params[attr] = obj[attr]
  end

  params
end