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