class SandthornSequelProjection::Cursor
Attributes
batch_size[R]
last_sequence_number[R]
Public Class Methods
new( after_sequence_number: 0, event_store: SandthornSequelProjection.default_event_store, batch_size: SandthornSequelProjection.batch_size)
click to toggle source
# File lib/sandthorn_sequel_projection/cursor.rb, line 6 def initialize( after_sequence_number: 0, event_store: SandthornSequelProjection.default_event_store, batch_size: SandthornSequelProjection.batch_size) @last_sequence_number = after_sequence_number @batch_size = batch_size @event_store = event_store end
Public Instance Methods
get_batch()
click to toggle source
# File lib/sandthorn_sequel_projection/cursor.rb, line 15 def get_batch events = get_events events.tap do |events| if last_event = events.last @last_sequence_number = last_event[:sequence_number] end end end
Private Instance Methods
get_event_array()
click to toggle source
# File lib/sandthorn_sequel_projection/cursor.rb, line 34 def get_event_array @event_store.get_events(after_sequence_number: last_sequence_number, take: batch_size) end
get_events()
click to toggle source
# File lib/sandthorn_sequel_projection/cursor.rb, line 26 def get_events wrap(get_event_array) end
wrap(events)
click to toggle source
# File lib/sandthorn_sequel_projection/cursor.rb, line 30 def wrap(events) SandthornEventFilter.filter(events) end