Class: RubyEventStore::Facade
- Inherits:
-
Object
- Object
- RubyEventStore::Facade
- Defined in:
- lib/ruby_event_store/facade.rb
Defined Under Namespace
Classes: Page
Instance Attribute Summary collapse
-
#event_broker ⇒ Object
readonly
Returns the value of attribute event_broker.
-
#repository ⇒ Object
readonly
Returns the value of attribute repository.
Instance Method Summary collapse
- #append_to_stream(stream_name, event, expected_version = :any) ⇒ Object
- #delete_stream(stream_name) ⇒ Object
-
#initialize(repository, event_broker = PubSub::Broker.new) ⇒ Facade
constructor
A new instance of Facade.
- #publish_event(event, stream_name = GLOBAL_STREAM, expected_version = :any) ⇒ Object
- #read_all_streams_backward(start, count) ⇒ Object
- #read_all_streams_forward(start, count) ⇒ Object
- #read_events_backward(stream_name, start, count) ⇒ Object
- #read_events_forward(stream_name, start, count) ⇒ Object
- #read_stream_events_backward(stream_name) ⇒ Object
- #read_stream_events_forward(stream_name) ⇒ Object
- #subscribe(subscriber, event_types, &proc) ⇒ Object
- #subscribe_to_all_events(subscriber, &proc) ⇒ Object
Constructor Details
Instance Attribute Details
#event_broker ⇒ Object (readonly)
Returns the value of attribute event_broker.
7 8 9 |
# File 'lib/ruby_event_store/facade.rb', line 7 def event_broker @event_broker end |
#repository ⇒ Object (readonly)
Returns the value of attribute repository.
7 8 9 |
# File 'lib/ruby_event_store/facade.rb', line 7 def repository @repository end |
Instance Method Details
#append_to_stream(stream_name, event, expected_version = :any) ⇒ Object
15 16 17 18 19 |
# File 'lib/ruby_event_store/facade.rb', line 15 def append_to_stream(stream_name, event, expected_version = :any) validate_expected_version(stream_name, expected_version) repository.create(event, stream_name) :ok end |
#delete_stream(stream_name) ⇒ Object
21 22 23 24 25 |
# File 'lib/ruby_event_store/facade.rb', line 21 def delete_stream(stream_name) raise IncorrectStreamData if stream_name.nil? || stream_name.empty? repository.delete_stream(stream_name) :ok end |
#publish_event(event, stream_name = GLOBAL_STREAM, expected_version = :any) ⇒ Object
9 10 11 12 13 |
# File 'lib/ruby_event_store/facade.rb', line 9 def publish_event(event, stream_name = GLOBAL_STREAM, expected_version = :any) append_to_stream(stream_name, event, expected_version) event_broker.notify_subscribers(event) :ok end |
#read_all_streams_backward(start, count) ⇒ Object
54 55 56 57 |
# File 'lib/ruby_event_store/facade.rb', line 54 def read_all_streams_backward(start, count) page = Page.new(repository, start, count) repository.read_all_streams_backward(page.start, page.count) end |
#read_all_streams_forward(start, count) ⇒ Object
49 50 51 52 |
# File 'lib/ruby_event_store/facade.rb', line 49 def read_all_streams_forward(start, count) page = Page.new(repository, start, count) repository.read_all_streams_forward(page.start, page.count) end |
#read_events_backward(stream_name, start, count) ⇒ Object
33 34 35 36 37 |
# File 'lib/ruby_event_store/facade.rb', line 33 def read_events_backward(stream_name, start, count) raise IncorrectStreamData if stream_name.nil? || stream_name.empty? page = Page.new(repository, start, count) repository.read_events_backward(stream_name, page.start, page.count) end |
#read_events_forward(stream_name, start, count) ⇒ Object
27 28 29 30 31 |
# File 'lib/ruby_event_store/facade.rb', line 27 def read_events_forward(stream_name, start, count) raise IncorrectStreamData if stream_name.nil? || stream_name.empty? page = Page.new(repository, start, count) repository.read_events_forward(stream_name, page.start, page.count) end |
#read_stream_events_backward(stream_name) ⇒ Object
44 45 46 47 |
# File 'lib/ruby_event_store/facade.rb', line 44 def read_stream_events_backward(stream_name) raise IncorrectStreamData if stream_name.nil? || stream_name.empty? repository.read_stream_events_backward(stream_name) end |
#read_stream_events_forward(stream_name) ⇒ Object
39 40 41 42 |
# File 'lib/ruby_event_store/facade.rb', line 39 def read_stream_events_forward(stream_name) raise IncorrectStreamData if stream_name.nil? || stream_name.empty? repository.read_stream_events_forward(stream_name) end |
#subscribe(subscriber, event_types, &proc) ⇒ Object
59 60 61 62 63 |
# File 'lib/ruby_event_store/facade.rb', line 59 def subscribe(subscriber, event_types, &proc) event_broker.add_subscriber(subscriber, event_types).tap do |unsub| handle_subscribe(unsub, &proc) end end |
#subscribe_to_all_events(subscriber, &proc) ⇒ Object
65 66 67 68 69 |
# File 'lib/ruby_event_store/facade.rb', line 65 def subscribe_to_all_events(subscriber, &proc) event_broker.add_global_subscriber(subscriber).tap do |unsub| handle_subscribe(unsub, &proc) end end |