Module: Pagy::SharedExtra::Pagy

Included in:
Pagy
Defined in:
lib/pagy/extras/shared.rb

Overview

Additions for the Pagy class

Instance Method Summary collapse

Instance Method Details

#sequels(steps = nil) ⇒ Object

‘Pagy` instance method used by the `pagy*_nav_js` helpers. It returns the sequels of width/series generated from the :steps hash Example: >> pagy = Pagy.new(count:1000, page: 20, steps: => [1,2,2,1], 350 => [2,3,3,2], 550 => [3,4,4,3]) >> pagy.sequels #=> { “0” => [1, :gap, 18, 19, “20”, 21, 22, :gap, 50],

"350" => [1, 2, :gap, 17, 18, 19, "20", 21, 22, 23, :gap, 49, 50],
"550" => [1, 2, 3, :gap, 16, 17, 18, 19, "20", 21, 22, 23, 24, :gap, 48, 49, 50] }

Notice: if :steps is false it will use the single => @vars size

Raises:



20
21
22
23
24
25
26
27
28
# File 'lib/pagy/extras/shared.rb', line 20

def sequels(steps = nil)
  steps ||= @vars[:steps] || { 0 => @vars[:size] }
  raise VariableError.new(self), "expected :steps to define the 0 width; got #{steps.inspect}" \
        unless steps.key?(0)

  {}.tap do |sequels|
    steps.each { |width, size| sequels[width.to_s] = series(size) }
  end
end