Class: Tessa::AssetChangeSet

Inherits:
Object
  • Object
show all
Defined in:
lib/tessa/asset_change_set.rb

Instance Method Summary collapse

Instance Method Details

#+(b) ⇒ Object



20
21
22
23
24
# File 'lib/tessa/asset_change_set.rb', line 20

def +(b)
  self.changes = (self.changes + b.changes).uniq
  self.scoped_ids = (self.scoped_ids + b.scoped_ids).uniq
  self
end

#add(value) ⇒ Object



26
27
28
29
30
# File 'lib/tessa/asset_change_set.rb', line 26

def add(value)
  id = id_from_asset(value)
  changes << AssetChange.new(id: id, action: "add")
  scoped_ids << id
end

#applyObject



16
17
18
# File 'lib/tessa/asset_change_set.rb', line 16

def apply
  scoped_changes.uniq.each(&:apply)
end

#remove(value) ⇒ Object



32
33
34
35
36
# File 'lib/tessa/asset_change_set.rb', line 32

def remove(value)
  id = id_from_asset(value)
  changes << AssetChange.new(id: id, action: "remove")
  scoped_ids << id
end

#scoped_changesObject



12
13
14
# File 'lib/tessa/asset_change_set.rb', line 12

def scoped_changes
  changes.select { |change| scoped_ids.include?(change.id) }
end

#scoped_ids=(new_ids) ⇒ Object



8
9
10
# File 'lib/tessa/asset_change_set.rb', line 8

def scoped_ids=(new_ids)
  super new_ids.compact
end