class GearedPagination::PortionAtOffset
Attributes
page_number[R]
ratios[R]
Public Class Methods
new(page_number: 1, per_page: Ratios.new)
click to toggle source
# File lib/geared_pagination/portions/portion_at_offset.rb, line 7 def initialize(page_number: 1, per_page: Ratios.new) @page_number, @ratios = page_number, per_page end
Public Instance Methods
cache_key()
click to toggle source
# File lib/geared_pagination/portions/portion_at_offset.rb, line 31 def cache_key "#{page_number}:#{ratios.cache_key}" end
from(scope)
click to toggle source
# File lib/geared_pagination/portions/portion_at_offset.rb, line 11 def from(scope) scope.limit(limit).offset(offset) end
limit()
click to toggle source
# File lib/geared_pagination/portions/portion_at_offset.rb, line 15 def limit ratios[page_number] end
next_param(*)
click to toggle source
# File lib/geared_pagination/portions/portion_at_offset.rb, line 26 def next_param(*) page_number + 1 end
offset()
click to toggle source
# File lib/geared_pagination/portions/portion_at_offset.rb, line 19 def offset variable = [(page_number - 1), ratios.size - 1].min.times.sum { |index| ratios[index + 1] } fixed = [page_number - ratios.size, 0].max * ratios.fixed variable + fixed end