class Cassie::Testing::Fake::Result
Attributes
opts[R]
rows[R]
statement[R]
Public Class Methods
new(statement, execution_opts={})
click to toggle source
# File lib/cassie/testing/fake/result.rb, line 8 def initialize(statement, execution_opts={}) @statement = statement @opts = execution_opts @rows = @data = opts[:rows] || [] end
Public Instance Methods
current_page()
click to toggle source
# File lib/cassie/testing/fake/result.rb, line 62 def current_page return 1 unless paging_enabled? && previous_page previous_page + 1 end
each()
click to toggle source
# File lib/cassie/testing/fake/result.rb, line 18 def each result_rows = if paging_enabled? index = current_page - 1 offset = index * page_size @data.slice(offset, page_size) || [] else @data end if block_given? result_rows.each(&block) self else result_rows.each end end
Also aliased as: rows, each_row
empty?()
click to toggle source
# File lib/cassie/testing/fake/result.rb, line 37 def empty? !rows.peek rescue StopIteration true end
execution_info()
click to toggle source
# File lib/cassie/testing/fake/result.rb, line 14 def execution_info ExecutionInfo.new(statement) end
last_page?()
click to toggle source
# File lib/cassie/testing/fake/result.rb, line 67 def last_page? return nil unless paging_enabled? current_page == pages end
page_size()
click to toggle source
# File lib/cassie/testing/fake/result.rb, line 47 def page_size return nil unless opts[:page_size] opts[:page_size].to_i end
pages()
click to toggle source
# File lib/cassie/testing/fake/result.rb, line 52 def pages return nil unless paging_enabled? (@data.count / page_size.to_f).ceil end
paging_enabled?()
click to toggle source
# File lib/cassie/testing/fake/result.rb, line 43 def paging_enabled? !!page_size end
paging_state()
click to toggle source
# File lib/cassie/testing/fake/result.rb, line 77 def paging_state return nil unless paging_enabled? if previous_paging_state bytes = previous_paging_state.bytes raise 'Too many pages for Cassie testing harness!' if bytes[-1] >= 256 bytes[-1] = bytes[-1] + 1 bytes.pack('c*') else # use last byte of state string to store pages # presume 255 pages is enough for any testing "paging #{SecureRandom.hex(6)}:" + [1].pack('c*') end end
previous_page()
click to toggle source
# File lib/cassie/testing/fake/result.rb, line 57 def previous_page return nil unless previous_paging_state previous_paging_state.bytes[-1] end
previous_paging_state()
click to toggle source
# File lib/cassie/testing/fake/result.rb, line 72 def previous_paging_state return nil unless paging_enabled? @opts[:paging_state] end