Sha256: 282ce4b1b2d85da05e680f88e3b83eeae0811ccc16fe4664aabbf63d7553e218
Contents?: true
Size: 580 Bytes
Versions: 2
Compression:
Stored size: 580 Bytes
Contents
require 'geared_pagination/ratios' module GearedPagination class PortionAtOffset attr_reader :page_number, :ratios def initialize(page_number: 1, per_page: Ratios.new) @page_number, @ratios = page_number, per_page end def from(scope) scope.limit(limit).offset(offset) end def limit ratios[page_number] end def offset (page_number - 1).times.sum { |index| ratios[index + 1] } end def next_param(*) page_number + 1 end def cache_key "#{page_number}:#{ratios.cache_key}" end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
geared_pagination-1.0.1 | lib/geared_pagination/portions/portion_at_offset.rb |
geared_pagination-1.0.0 | lib/geared_pagination/portions/portion_at_offset.rb |