Method: Pagy::Countless#initialize

Defined in:
lib/pagy/countless.rb

#initialize(vars = {}) ⇒ Countless

Merge and validate the options, do some simple arithmetic and set a few instance variables



11
12
13
14
15
16
17
18
# File 'lib/pagy/countless.rb', line 11

def initialize(vars={})
  @vars = VARS.merge(vars.delete_if{|_,v| v.nil? || v == '' })      # default vars + cleaned vars (can be overridden)
  { items:1, outset:0, page:1 }.each do |k,min|                     # validate instance variables
    (@vars[k] && instance_variable_set(:"@#{k}", @vars[k].to_i) >= min) \
     or raise(ArgumentError, "expected :#{k} >= #{min}; got #{@vars[k].inspect}")
  end
  @offset = @items * (@page - 1) + @outset                          # pagination offset + outset (initial offset)
end