lib/rom/sql/plugin/pagination.rb in rom-sql-0.9.1 vs lib/rom/sql/plugin/pagination.rb in rom-sql-1.0.0.beta1

- old
+ new

@@ -1,23 +1,20 @@ +require 'rom/initializer' + module ROM module SQL module Plugin module Pagination class Pager - include Options + extend Initializer include Dry::Equalizer(:dataset, :options) - option :current_page, reader: true, default: 1 + param :dataset + + option :current_page, reader: true, default: proc { 1 } option :per_page, reader: true - attr_reader :dataset - - def initialize(dataset, options = {}) - super - @dataset = dataset - end - def next_page num = current_page + 1 num if total_pages >= num end @@ -69,21 +66,21 @@ # @return [Relation] # # @api public def page(num) next_pager = pager.at(dataset, num) - __new__(next_pager.dataset, pager: next_pager) + new(next_pager.dataset, pager: next_pager) end # Set limit for pagination # # @example # rom.relation(:users).page(2).per_page(10) # # @api public def per_page(num) next_pager = pager.at(dataset, pager.current_page, num) - __new__(next_pager.dataset, pager: next_pager) + new(next_pager.dataset, pager: next_pager) end end end end end