Class: Petra::Components::EntrySet
- Inherits:
-
Array
- Object
- Array
- Petra::Components::EntrySet
- Defined in:
- lib/petra/components/entry_set.rb
Overview
An EntrySet is a collection of log entries for a certain section. It may be used to chain-filter entries, e.g. only object_persisted entries for a certain proxy.
TODO: Probably be Enumerator::Lazy…
Instance Method Summary collapse
-
#apply! ⇒ Object
Applies all log entries which were marked as object persisted The log entry itself decides whether it is actually executed or not.
-
#enqueue_for_persisting! ⇒ Object
Tells each log entry to enqueue for persisting.
- #for_attribute_key(key) ⇒ Object
-
#for_proxy(proxy) ⇒ Object
—————————————————————- Filters —————————————————————-.
- #latest ⇒ Object
- #not_object_persisted ⇒ Object
- #object_persisted ⇒ Object
- #of_kind(kind) ⇒ Object
- #prepare_for_retry! ⇒ Object
-
#reverse ⇒ Object
—————————————————————- Wrapped Array Methods —————————————————————-.
- #sort ⇒ Object
Instance Method Details
#apply! ⇒ Object
Applies all log entries which were marked as object persisted The log entry itself decides whether it is actually executed or not.
51 52 53 54 55 56 |
# File 'lib/petra/components/entry_set.rb', line 51 def apply! object_persisted.each do |o| Petra.logger.debug "Applying entry #{o}" o.apply! end end |
#enqueue_for_persisting! ⇒ Object
Tells each log entry to enqueue for persisting. The individual log entries may decided whether they actually want to be persisted or not.
63 64 65 |
# File 'lib/petra/components/entry_set.rb', line 63 def enqueue_for_persisting! each(&:enqueue_for_persisting!) end |
#for_attribute_key(key) ⇒ Object
27 28 29 |
# File 'lib/petra/components/entry_set.rb', line 27 def for_attribute_key(key) wrap { select { |e| e.attribute_key.to_s == key.to_s } } end |
#for_proxy(proxy) ⇒ Object
Filters
19 20 21 |
# File 'lib/petra/components/entry_set.rb', line 19 def for_proxy(proxy) wrap { select { |e| e.for_object?(proxy.__object_key) } } end |
#latest ⇒ Object
39 40 41 |
# File 'lib/petra/components/entry_set.rb', line 39 def latest last end |
#not_object_persisted ⇒ Object
35 36 37 |
# File 'lib/petra/components/entry_set.rb', line 35 def not_object_persisted wrap { reject(&:object_persisted?) } end |
#object_persisted ⇒ Object
31 32 33 |
# File 'lib/petra/components/entry_set.rb', line 31 def object_persisted wrap { select(&:object_persisted?) } end |
#of_kind(kind) ⇒ Object
23 24 25 |
# File 'lib/petra/components/entry_set.rb', line 23 def of_kind(kind) wrap { select { |e| e.kind?(kind) } } end |
#prepare_for_retry! ⇒ Object
67 68 69 |
# File 'lib/petra/components/entry_set.rb', line 67 def prepare_for_retry! select(&:persist_on_retry?).each(&:enqueue_for_persisting!) end |
#reverse ⇒ Object
Wrapped Array Methods
75 76 77 |
# File 'lib/petra/components/entry_set.rb', line 75 def reverse(*) wrap { super } end |
#sort ⇒ Object
79 80 81 |
# File 'lib/petra/components/entry_set.rb', line 79 def sort(*) wrap { super } end |