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