module Cassie::Statements::Execution::Peeking

Public Instance Methods

execute(*args) click to toggle source
Calls superclass method
# File lib/cassie/statements/execution/peeking.rb, line 9
def execute(*args)
  assert_limit
  @unpeeked_limit = limit
  with_limit(limit + 1) do
   super
  end
end
unpeeked_limit() click to toggle source
# File lib/cassie/statements/execution/peeking.rb, line 17
def unpeeked_limit
  @unpeeked_limit if defined?(@unpeeked_limit)
end

Protected Instance Methods

result_opts() click to toggle source
Calls superclass method
# File lib/cassie/statements/execution/peeking.rb, line 23
def result_opts
  super.merge(limit: unpeeked_limit || limit)
end

Private Instance Methods

assert_limit() click to toggle source
# File lib/cassie/statements/execution/peeking.rb, line 29
def assert_limit
  if limit.nil?
    raise ArgumentError, "Cassie Peeking is enabled, but the statement limit is `nil`. A limit is required to peek at the next result. Did you accidentally set `Cassie::Statements.limit = nil` instead of disabling the limit for only a specific query?"
  end
end