lib/pagy.rb in pagy-9.0.1 vs lib/pagy.rb in pagy-9.0.2

- old
+ new

@@ -1,13 +1,14 @@ # See Pagy API documentation: https://ddnexus.github.io/pagy/docs/api/pagy # frozen_string_literal: true require 'pathname' +require_relative 'pagy/shared_methods' # Top superclass: it should define only what's common to all the subclasses class Pagy - VERSION = '9.0.1' + VERSION = '9.0.2' # Core default: constant for easy access, but mutable for customizable defaults DEFAULT = { count_args: [:all], # rubocop:disable Style/MutableConstant ends: true, limit: 20, @@ -19,32 +20,9 @@ # Gem root pathname to get the path of Pagy files stylesheets, javascripts, apps, locales, etc. def self.root @root ||= Pathname.new(__dir__).parent.freeze end - # Shared with Keyset - module SharedMethods - attr_reader :page, :limit, :vars - - # 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 - - # Assign @limit (overridden by the gearbox extra) - def assign_limit - assign_and_check(limit: 1) - end - - # Assign @vars - def assign_vars(default, vars) - @vars = { **default, **vars.delete_if { |k, v| default.key?(k) && (v.nil? || v == '') } } - end - end include SharedMethods attr_reader :count, :from, :in, :last, :next, :offset, :prev, :to alias pages last