Class: RailsEventStore::Repositories::EventRepository

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_event_store/repositories/event_repository.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(adapter = EventEntity) ⇒ EventRepository



5
6
7
# File 'lib/rails_event_store/repositories/event_repository.rb', line 5

def initialize(adapter = EventEntity)
  @adapter = adapter
end

Instance Attribute Details

#adapterObject (readonly)

Returns the value of attribute adapter.



8
9
10
# File 'lib/rails_event_store/repositories/event_repository.rb', line 8

def adapter
  @adapter
end

Instance Method Details

#create(data) ⇒ Object

Raises:



14
15
16
17
18
# File 'lib/rails_event_store/repositories/event_repository.rb', line 14

def create(data)
  model = adapter.new(data)
  raise EventCannotBeSaved unless model.valid?
  model.save
end

#delete(condition) ⇒ Object



20
21
22
# File 'lib/rails_event_store/repositories/event_repository.rb', line 20

def delete(condition)
  adapter.destroy_all condition
end

#find(condition) ⇒ Object



10
11
12
# File 'lib/rails_event_store/repositories/event_repository.rb', line 10

def find(condition)
  adapter.where(condition).first
end

#get_all_eventsObject



24
25
26
# File 'lib/rails_event_store/repositories/event_repository.rb', line 24

def get_all_events
  adapter.find(:all, order: 'stream').map &method(:map_record)
end

#last_stream_event(stream_name) ⇒ Object



28
29
30
# File 'lib/rails_event_store/repositories/event_repository.rb', line 28

def last_stream_event(stream_name)
  adapter.where(stream: stream_name).last.map &method(:map_record)
end

#load_all_events_forward(stream_name) ⇒ Object



32
33
34
# File 'lib/rails_event_store/repositories/event_repository.rb', line 32

def load_all_events_forward(stream_name)
  adapter.where(stream: stream_name).order('id ASC').map &method(:map_record)
end

#load_events_batch(stream_name, start_point, count) ⇒ Object



36
37
38
# File 'lib/rails_event_store/repositories/event_repository.rb', line 36

def load_events_batch(stream_name, start_point, count)
  adapter.where('id >= ? AND stream = ?', start_point, stream_name).limit(count).map &method(:map_record)
end