module Pagy::GearboxExtra

def assign_limit

Assign @limit based on the :gearbox_limit variable
def assign_limit
  return super if !@vars[:gearbox_extra] || @vars[:limit_extra]
  gears = @vars[:gearbox_limit]
  raise VariableError.new(self, :gearbox_limit, 'to be an Array of positives', gears) \
        unless gears.is_a?(Array) && gears.all? { |num| num.positive? rescue false } # rubocop:disable Style/RescueModifier
  @limit = gears[@page - 1] || gears.last
end