module Pagy::SharedMethods

def assign_and_check(name_min)

Validates and assign the passed vars: var must be present and value.to_i must be >= to min
def assign_and_check(name_min)
  name_min.each do |name, min|
    raise VariableError.new(self, name, ">= #{min}", @vars[name]) \
          unless @vars[name]&.respond_to?(:to_i) && instance_variable_set(:"@#{name}", @vars[name].to_i) >= min
  end
end

def assign_limit

Assign @limit (overridden by the gearbox extra)
def assign_limit
  assign_and_check(limit: 1)
end

def assign_vars(default, vars)

Assign @vars
def assign_vars(default, vars)
  @vars = { **default, **vars.delete_if { |k, v| default.key?(k) && (v.nil? || v == '') } }
end