Sha256: d729aab5deee2402a5e0db865f160b654e224f8cd30e3b2db271caf6877e15b0

Contents?: true

Size: 1.17 KB

Versions: 10

Compression:

Stored size: 1.17 KB

Contents

module Blacklight
  module KaminariRelevantPagesPatch
    module Windows
      def relevant_pages options
        [left_window(options), inside_window(options), right_window(options)].map(&:to_a).flatten.uniq.sort.reject { |x| x < 1 or x > options[:num_pages] }
      end

      def all_pages options
        1.upto(options[:num_pages])
      end

      protected
      def left_window options
        1.upto(options[:left] + 1)
      end

      def right_window options
        (options[:num_pages] - options[:right]).upto(options[:num_pages])
      end

      def inside_window options
        (options[:current_page] - options[:window]).upto(options[:current_page] + options[:window])
      end
    end

    include Windows
    def each_relevant_page
      return to_enum(:each_relevant_page) unless block_given?

      relevant_pages(@window_options.merge(@options)).each do |i|
        yield Kaminari::Helpers::Paginator::PageProxy.new(@window_options.merge(@options), i, @last)
      end
    end
  end
end

require 'kaminari'
if Gem.loaded_specs['kaminari'].version <= Gem::Version.create('0.12.4')
  Kaminari::Helpers::Paginator.send(:include, Blacklight::KaminariRelevantPagesPatch)
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
blacklight-3.5.0 lib/blacklight/kaminari_relevant_pages_patch.rb
blacklight-3.4.2 lib/blacklight/kaminari_relevant_pages_patch.rb
blacklight-3.4.1 lib/blacklight/kaminari_relevant_pages_patch.rb
blacklight-3.4.0 lib/blacklight/kaminari_relevant_pages_patch.rb
blacklight-3.3.2 lib/blacklight/kaminari_relevant_pages_patch.rb
blacklight-3.3.1 lib/blacklight/kaminari_relevant_pages_patch.rb
blacklight-3.3.0 lib/blacklight/kaminari_relevant_pages_patch.rb
blacklight-3.2.2 lib/blacklight/kaminari_relevant_pages_patch.rb
blacklight-3.2.1 lib/blacklight/kaminari_relevant_pages_patch.rb
blacklight-3.2.0 lib/blacklight/kaminari_relevant_pages_patch.rb