Module: Tessa::Model::InstanceMethods

Defined in:
lib/tessa/model.rb

Instance Method Summary collapse

Instance Method Details

#apply_tessa_change_setsObject



19
20
21
22
23
# File 'lib/tessa/model.rb', line 19

def apply_tessa_change_sets
  @pending_tessa_change_sets.delete_if do |_, change_set|
    change_set.apply
  end
end

#fetch_tessa_remote_assets(ids) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/tessa/model.rb', line 35

def fetch_tessa_remote_assets(ids)
  if [*ids].empty?
    [] if ids.is_a?(Array)
  else
    Tessa::Asset.find(ids)
  end
rescue Tessa::RequestFailed => err
  if ids.is_a?(Array)
    ids.map do |id|
      Tessa::Asset::Failure.factory(id: id, response: err.response)
    end
  else
    Tessa::Asset::Failure.factory(id: ids, response: err.response)
  end
end

#pending_tessa_change_setsObject



15
16
17
# File 'lib/tessa/model.rb', line 15

def pending_tessa_change_sets
  @pending_tessa_change_sets ||= Hash.new { AssetChangeSet.new }
end

#remove_all_tessa_assetsObject



25
26
27
28
29
30
31
32
33
# File 'lib/tessa/model.rb', line 25

def remove_all_tessa_assets
  self.class.tessa_fields.each do |name, field|
    change_set = pending_tessa_change_sets[name]
    field.ids(on: self).each do |asset_id|
      change_set.remove(asset_id)
    end
    pending_tessa_change_sets[name] = change_set
  end
end