Sha256: 674fac2f769ef1afb962af7770c41b7f7881962d19792934cb3c79b10fa5e934

Contents?: true

Size: 1.07 KB

Versions: 5

Compression:

Stored size: 1.07 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

Kaminari::Helpers::Paginator.send(:include, Blacklight::KaminariRelevantPagesPatch)

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
blacklight-3.2.0pre2 lib/blacklight/kaminari_relevant_pages_patch.rb
blacklight-3.2.0pre1 lib/blacklight/kaminari_relevant_pages_patch.rb
blacklight-3.1.2 lib/blacklight/kaminari_relevant_pages_patch.rb
blacklight-3.1.1 lib/blacklight/kaminari_relevant_pages_patch.rb
blacklight-3.1.0 lib/blacklight/kaminari_relevant_pages_patch.rb