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