Class: TransactionProcessor
- Inherits:
-
Object
- Object
- TransactionProcessor
- Defined in:
- lib/ObjectModel/Repository/TransactionProcessor.rb
Instance Method Summary collapse
- #check_outdated ⇒ Object
-
#initialize(repository, transaction) ⇒ TransactionProcessor
constructor
A new instance of TransactionProcessor.
- #persist ⇒ Object
- #write_back ⇒ Object
Constructor Details
#initialize(repository, transaction) ⇒ TransactionProcessor
Returns a new instance of TransactionProcessor.
4 5 6 |
# File 'lib/ObjectModel/Repository/TransactionProcessor.rb', line 4 def initialize repository, transaction @repository, @transaction = repository, transaction end |
Instance Method Details
#check_outdated ⇒ Object
8 9 10 11 12 13 14 15 16 |
# File 'lib/ObjectModel/Repository/TransactionProcessor.rb', line 8 def check_outdated outdated = [] @transaction.copies.each do |entity_id, c| next if c.new? e = @repository.by_id(entity_id) outdated << entity_id if c.om_version != e.om_version end raise_without_self OutdatedError.new(outdated), "Outdated Entities: ['#{outdated.join('\', \'')}']", ObjectModel unless outdated.empty? end |
#persist ⇒ Object
26 27 28 29 30 31 32 33 34 35 |
# File 'lib/ObjectModel/Repository/TransactionProcessor.rb', line 26 def persist @transaction.copies.each do |entity_id, copy| entity = @transaction.resolve entity_id if copy.deleted? AnEntity::EntityType.delete entity, @repository.storage else AnEntity::EntityType.persist copy, entity, @repository.storage end end end |
#write_back ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/ObjectModel/Repository/TransactionProcessor.rb', line 18 def write_back @transaction.copies.each do |entity_id, copy| next if copy.deleted? entity = @transaction.resolve entity_id AnEntity::EntityType.write_back copy, entity end end |