class ActiveSet::Paginating::EnumerableStrategy

Public Class Methods

new(set, operation_instructions) click to toggle source
# File lib/active_set/paginating/enumerable_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/enumerable_strategy.rb, line 11
def execute
  return [] if @set.count <= @operation_instructions[:size] &&
               @operation_instructions[:page] > 1

  @set[page_start..page_end] || []
end

Private Instance Methods

page_end() click to toggle source
# File lib/active_set/paginating/enumerable_strategy.rb, line 26
def page_end
  return page_start if @operation_instructions[:size] == 1

  page_start + @operation_instructions[:size] - 1
end
page_start() click to toggle source
# File lib/active_set/paginating/enumerable_strategy.rb, line 20
def page_start
  return 0 if @operation_instructions[:page] == 1

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