def create_paginators_and_retrieve_collections #:nodoc:
Pagination::OPTIONS[self.class].each do |collection_id, options|
- next if options[:actions] && !options[:actions].include?(action_name)
+ next if options[:actions]&.exclude?(action_name)
paginator, collection =
paginator_and_collection_for(collection_id, options)
# object, its +number+ attribute is used as the value; if the page does
# not belong to this Paginator, an ArgumentError is raised.
def current_page=(page)
- if page.is_a? Page
- raise ArgumentError, "Page/Paginator mismatch" unless
- page.paginator == self
- end
+ raise ArgumentError, "Page/Paginator mismatch" if page.is_a?(Page) && page.paginator != self
+
page = page.to_i
@current_page_number = has_page_number?(page) ? page : 1
end
@number = 1 unless @paginator.has_page_number? @number
end
attr_reader :paginator, :number
+
alias to_i number
# Compares two Page objects and returns true when they represent the
@page = page
self.padding = padding
end
- attr_reader :paginator, :page
+ attr_reader :paginator, :page, :padding, :first, :last
# Sets the window's padding (the number of pages on either side of the
# window page).
@paginator.last
end
end
- attr_reader :padding, :first, :last
# Returns an array of Page objects in the current window.
def pages