class ActiveSet::Paginating::ActiveRecordStrategy

Public Class Methods

new(set, operation_instructions) click to toggle source
# File lib/active_set/paginating/active_record_strategy.rb, line 6
def initialize(set, operation_instructions)
  @set = set
  @operation_instructions = operation_instructions
end

Public Instance Methods

execute() click to toggle source
# File lib/active_set/paginating/active_record_strategy.rb, line 11
def execute
  return false unless @set.respond_to? :to_sql
  return @set.none if @set.length <= @operation_instructions[:size] &&
                      @operation_instructions[:page] > 1

  @set.limit(@operation_instructions[:size]).offset(page_offset)
end

Private Instance Methods

page_offset() click to toggle source
# File lib/active_set/paginating/active_record_strategy.rb, line 21
def page_offset
  return 0 if @operation_instructions[:page] == 1

  @operation_instructions[:size] * (@operation_instructions[:page] - 1)
end