class MessageStore::Postgres::Get::Stream
Constants
- Error
Public Class Methods
build(stream_name, batch_size: nil, condition: nil, session: nil)
click to toggle source
# File lib/message_store/postgres/get/stream.rb, line 16 def self.build(stream_name, batch_size: nil, condition: nil, session: nil) instance = new(stream_name, batch_size, condition) instance.configure(session: session) instance end
call(stream_name, position: nil, batch_size: nil, condition: nil, session: nil)
click to toggle source
# File lib/message_store/postgres/get/stream.rb, line 11 def self.call(stream_name, position: nil, batch_size: nil, condition: nil, session: nil) instance = build(stream_name, batch_size: batch_size, condition: condition, session: session) instance.(position) end
configure(receiver, stream_name, attr_name: nil, batch_size: nil, condition: nil, session: nil)
click to toggle source
# File lib/message_store/postgres/get/stream.rb, line 22 def self.configure(receiver, stream_name, attr_name: nil, batch_size: nil, condition: nil, session: nil) attr_name ||= :get instance = build(stream_name, batch_size: batch_size, condition: condition, session: session) receiver.public_send("#{attr_name}=", instance) end
Public Instance Methods
assure()
click to toggle source
# File lib/message_store/postgres/get/stream.rb, line 53 def assure if MessageStore::StreamName.category?(stream_name) raise Error, "Must be a stream name (Category: #{stream_name})" end end
last_position(batch)
click to toggle source
# File lib/message_store/postgres/get/stream.rb, line 45 def last_position(batch) batch.last.position end
log_text(stream_name, position)
click to toggle source
# File lib/message_store/postgres/get/stream.rb, line 49 def log_text(stream_name, position) "Stream Name: #{stream_name}, Position: #{position.inspect}, Batch Size: #{batch_size.inspect}, Condition: #{condition.inspect})" end
parameter_values(stream_name, position)
click to toggle source
# File lib/message_store/postgres/get/stream.rb, line 36 def parameter_values(stream_name, position) [ stream_name, position, batch_size, condition ] end
parameters()
click to toggle source
# File lib/message_store/postgres/get/stream.rb, line 32 def parameters '$1::varchar, $2::bigint, $3::bigint, $4::varchar' end
sql_command()
click to toggle source
# File lib/message_store/postgres/get/stream.rb, line 28 def sql_command "SELECT * FROM get_stream_messages(#{parameters});" end