lib/pagy/extras/overflow.rb in pagy-8.6.3 vs lib/pagy/extras/overflow.rb in pagy-9.0.0
- old
+ new
@@ -12,24 +12,24 @@
def overflow?
@overflow
end
# Add rescue clause for different behaviors
- def initialize(vars)
+ def initialize(**vars)
@overflow ||= false # still true if :last_page re-run the method after an overflow
super
rescue OverflowError
@overflow = true # add the overflow flag
case @vars[:overflow]
when :exception
raise # same as without the extra
when :last_page
requested_page = @vars[:page] # save the requested page (even after re-run)
- initialize vars.merge!(page: @last) # re-run with the last page
+ initialize(**vars, page: @last) # re-run with the last page
@vars[:page] = requested_page # restore the requested page
when :empty_page
- @offset = @items = @in = @from = @to = 0 # vars relative to the actual page
+ @offset = @limit = @in = @from = @to = 0 # vars relative to the actual page
if defined?(Calendar::Unit) \
&& is_a?(Calendar::Unit) # only for Calendar::Units instances
edge = @order == :asc ? @final : @initial # get the edge of the overflow side (neat, but any time would do)
@from = @to = edge # set both to the edge utc time (a >=&&< query will get no records)
end
@@ -55,19 +55,19 @@
Pagy::Calendar::Unit.prepend PagyOverride if defined?(Calendar::Unit)
# Support for Pagy::Countless class
module CountlessOverride
# Add rescue clause for different behaviors
- def finalize(items)
+ def finalize(fetched_size)
@overflow = false
super
rescue OverflowError
@overflow = true # add the overflow flag
case @vars[:overflow]
when :exception
raise # same as without the extra
when :empty_page
- @offset = @items = @from = @to = 0 # vars relative to the actual page
+ @offset = @limit = @from = @to = 0 # vars relative to the actual page
@vars[:size] = 0 # no page in the series
self
else
raise VariableError.new(self, :overflow, 'to be in [:empty_page, :exception]', @vars[:overflow])
end