def page(page_number = nil)
      fail ArgumentError, "You must supply a page number." unless page_number.present?
      fail ArgumentError, "Page number cannot be less than 1." if page_number.to_i < 1
      fail ArgumentError, "Page number cannot be greater than the last page number." if page_number.to_i > last_page_number.to_i
      page_number.to_i != current_page_number.to_i ? updated_collection(from: from, page: { number: page_number, size: (next_page_params || previous_page_params)['page']['size'] }) : self
    end
def page(page_number = nil)
      fail ArgumentError, "You must supply a page number." unless page_number.present?
      fail ArgumentError, "Page number cannot be less than 1." if page_number.to_i < 1
      fail ArgumentError, "Page number cannot be greater than the last page number." if page_number.to_i > last_page_number.to_i
      page_number.to_i != current_page_number.to_i ? updated_collection(from: from, page: { number: page_number, size: (next_page_params || previous_page_params)['page']['size'] }) : self
    end
Returns the +page_number+ page of data.

 Returns +self+ when +page_number+ == +#current_page_number+

 @param page_number [Integer] The page number of the data wanted. Must be between 1 and +#last_page_number+.
 @return [PaginatedCollection, self]
 @raise [ArgumentError] if no page number or an out-of-bounds page number is supplied.
 @example
   alerts.current_page_number # => 5
   page = alerts.page(2)
   alerts.current_page_number # => 5
   page.current_page_number # => 2