Class: RailsEventStore::Repositories::EventRepository
- Inherits:
-
Object
- Object
- RailsEventStore::Repositories::EventRepository
- Defined in:
- lib/rails_event_store/repositories/event_repository.rb
Instance Attribute Summary collapse
-
#adapter ⇒ Object
readonly
Returns the value of attribute adapter.
Instance Method Summary collapse
- #create(data) ⇒ Object
- #delete(condition) ⇒ Object
- #find(condition) ⇒ Object
- #get_all_events ⇒ Object
-
#initialize(adapter = EventEntity) ⇒ EventRepository
constructor
A new instance of EventRepository.
- #last_stream_event(stream_name) ⇒ Object
- #load_all_events_forward(stream_name) ⇒ Object
- #load_events_batch(stream_name, start_point, count) ⇒ Object
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
#adapter ⇒ Object (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
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_events ⇒ Object
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 |