Class: TransactionalOutbox::Database::Adapters::Null
- Defined in:
- lib/transactional_outbox/database/adapters/null.rb
Class Method Summary collapse
Instance Method Summary collapse
- #delete_events(ids) ⇒ Object
- #fetch_events(queue_name, batch_size) ⇒ Object
- #fetch_queues ⇒ Object
- #insert_events(rows) ⇒ Object
- #move_to_processing(ids) ⇒ Object
- #transaction(*_options, &block) ⇒ Object
Methods included from InstanceMethods
Class Method Details
.clear_store ⇒ Object
9 |
# File 'lib/transactional_outbox/database/adapters/null.rb', line 9 def clear_store = @dataset = {} |
.dataset ⇒ Object
8 |
# File 'lib/transactional_outbox/database/adapters/null.rb', line 8 def dataset = @dataset ||= {} |
Instance Method Details
#delete_events(ids) ⇒ Object
32 33 34 35 36 |
# File 'lib/transactional_outbox/database/adapters/null.rb', line 32 def delete_events(ids) ids.each { |id| dataset.delete(id) } true end |
#fetch_events(queue_name, batch_size) ⇒ Object
22 23 24 |
# File 'lib/transactional_outbox/database/adapters/null.rb', line 22 def fetch_events(queue_name, batch_size) dataset.values.select { |row| row[:queue] == queue_name }.then { claimable_scope(_1) }.first(batch_size) end |
#fetch_queues ⇒ Object
26 |
# File 'lib/transactional_outbox/database/adapters/null.rb', line 26 def fetch_queues = dataset.values.then { claimable_scope(_1) }.map { |row| row[:queue] }.uniq |
#insert_events(rows) ⇒ Object
14 15 16 17 18 19 20 |
# File 'lib/transactional_outbox/database/adapters/null.rb', line 14 def insert_events(rows) rows.each do |row| dataset[row[:id]] = row.merge( status: TransactionalOutbox::EVENT_NEW_STATUS, processing_started_at: current_time ) end end |
#move_to_processing(ids) ⇒ Object
28 29 30 |
# File 'lib/transactional_outbox/database/adapters/null.rb', line 28 def move_to_processing(ids) ids.each { |id| dataset[id]&.merge!(status: TransactionalOutbox::EVENT_PROCESSING_STATUS) } end |
#transaction(*_options, &block) ⇒ Object
12 |
# File 'lib/transactional_outbox/database/adapters/null.rb', line 12 def transaction(*, &block) = block.call |