Class: RubyEventStore::InMemoryRepository
- Inherits:
-
Object
- Object
- RubyEventStore::InMemoryRepository
- Defined in:
- lib/ruby_event_store/in_memory_repository.rb
Instance Method Summary collapse
- #create(event, stream_name) ⇒ Object
- #delete_stream(stream_name) ⇒ Object
- #has_event?(event_id) ⇒ Boolean
-
#initialize ⇒ InMemoryRepository
constructor
A new instance of InMemoryRepository.
- #last_stream_event(stream_name) ⇒ Object
- #read_all_streams_backward(start_event_id, count) ⇒ Object
- #read_all_streams_forward(start_event_id, count) ⇒ Object
- #read_events_backward(stream_name, start_event_id, count) ⇒ Object
- #read_events_forward(stream_name, start_event_id, count) ⇒ Object
- #read_stream_events_backward(stream_name) ⇒ Object
- #read_stream_events_forward(stream_name) ⇒ Object
Constructor Details
#initialize ⇒ InMemoryRepository
Returns a new instance of InMemoryRepository.
5 6 7 8 |
# File 'lib/ruby_event_store/in_memory_repository.rb', line 5 def initialize @all = Array.new @streams = Hash.new end |
Instance Method Details
#create(event, stream_name) ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/ruby_event_store/in_memory_repository.rb', line 10 def create(event, stream_name) stream = read_stream_events_forward(stream_name) all.push(event) stream.push(event) streams[stream_name] = stream event end |
#delete_stream(stream_name) ⇒ Object
18 19 20 21 22 |
# File 'lib/ruby_event_store/in_memory_repository.rb', line 18 def delete_stream(stream_name) removed = read_stream_events_forward(stream_name).map(&:event_id) streams.delete(stream_name) all.delete_if{|ev| removed.include?(ev.event_id)} end |
#has_event?(event_id) ⇒ Boolean
24 25 26 |
# File 'lib/ruby_event_store/in_memory_repository.rb', line 24 def has_event?(event_id) all.any?{ |item| item.event_id.eql?(event_id) } end |
#last_stream_event(stream_name) ⇒ Object
28 29 30 |
# File 'lib/ruby_event_store/in_memory_repository.rb', line 28 def last_stream_event(stream_name) read_stream_events_forward(stream_name).last end |
#read_all_streams_backward(start_event_id, count) ⇒ Object
54 55 56 |
# File 'lib/ruby_event_store/in_memory_repository.rb', line 54 def read_all_streams_backward(start_event_id, count) read_batch(all.reverse, start_event_id, count) end |
#read_all_streams_forward(start_event_id, count) ⇒ Object
50 51 52 |
# File 'lib/ruby_event_store/in_memory_repository.rb', line 50 def read_all_streams_forward(start_event_id, count) read_batch(all, start_event_id, count) end |
#read_events_backward(stream_name, start_event_id, count) ⇒ Object
37 38 39 40 |
# File 'lib/ruby_event_store/in_memory_repository.rb', line 37 def read_events_backward(stream_name, start_event_id, count) source = read_stream_events_backward(stream_name) read_batch(source, start_event_id, count) end |
#read_events_forward(stream_name, start_event_id, count) ⇒ Object
32 33 34 35 |
# File 'lib/ruby_event_store/in_memory_repository.rb', line 32 def read_events_forward(stream_name, start_event_id, count) source = read_stream_events_forward(stream_name) read_batch(source, start_event_id, count) end |
#read_stream_events_backward(stream_name) ⇒ Object
46 47 48 |
# File 'lib/ruby_event_store/in_memory_repository.rb', line 46 def read_stream_events_backward(stream_name) read_stream_events_forward(stream_name).reverse end |
#read_stream_events_forward(stream_name) ⇒ Object
42 43 44 |
# File 'lib/ruby_event_store/in_memory_repository.rb', line 42 def read_stream_events_forward(stream_name) streams[stream_name] || Array.new end |