Class: Messaging::Adapters::Postgres::Store
- Inherits:
-
Object
- Object
- Messaging::Adapters::Postgres::Store
- Defined in:
- lib/messaging/adapters/postgres/store.rb
Overview
Message store adapter using Postgres and ActiveRecord. Prefer accessing the message store through Messaging.message_store instead of using it directly.
Instance Attribute Summary collapse
-
#streams ⇒ Streams
readonly
All the streams in the store.
Instance Method Summary collapse
-
#call(message) ⇒ Messaging::Message
Writes the message to Postgres Skips messages that hasn’t defined a stream name We do this to begin with so PG is opt-in per message.
-
#initialize ⇒ Store
constructor
private
Should not be used directly.
-
#messages ⇒ SerializedMessage
Access to all messages.
-
#stream(name) ⇒ Stream
Get a specific stream by name.
Constructor Details
#initialize ⇒ Store
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Should not be used directly. Access the store though Messaging.message_store or Messaging::Adapters::Store
26 27 28 |
# File 'lib/messaging/adapters/postgres/store.rb', line 26 def initialize @streams = Streams.new end |
Instance Attribute Details
#streams ⇒ Streams (readonly)
Returns all the streams in the store.
21 22 23 |
# File 'lib/messaging/adapters/postgres/store.rb', line 21 def streams @streams end |
Instance Method Details
#call(message) ⇒ Messaging::Message
Writes the message to Postgres Skips messages that hasn’t defined a stream name We do this to begin with so PG is opt-in per message
58 59 60 61 62 |
# File 'lib/messaging/adapters/postgres/store.rb', line 58 def call() return unless .stream_name SerializedMessage.create!(message: ). end |
#messages ⇒ SerializedMessage
Access to all messages. Use with caution in production as there are probably a lot of messages so queries could take a long time or timeout.
47 48 49 |
# File 'lib/messaging/adapters/postgres/store.rb', line 47 def SerializedMessage end |
#stream(name) ⇒ Stream
Get a specific stream by name
33 34 35 |
# File 'lib/messaging/adapters/postgres/store.rb', line 33 def stream(name) streams[name] end |