Sha256: 7918794213f099d68ef1cf6b3c1933d65f85bbe7a758ca1af440d478f14e31c3

Contents?: true

Size: 1.2 KB

Versions: 3

Compression:

Stored size: 1.2 KB

Contents

require 'kaminari'

module Europeana
  module Blacklight
    class Response
      ##
      # Pagination for{Europeana::Blacklight::Response}
      #
      # Based on {Blacklight::SolrResponse::Pagination} v5.10.2
      module Pagination
        include Kaminari::PageScopeMethods
        include Kaminari::ConfigurationMethods::ClassMethods
        extend ActiveSupport::Concern

        def limit_value
          rows
        end

        def offset_value
          start
        end

        def total_count
          total
        end

        def model_name
          return unless docs.present? && docs.first.respond_to?(:model_name)
          docs.first.model_name
        end

        def max_pages(val = :none)
          if val == :none
            # getter
            (defined?(@_max_pages) && @_max_pages) || (1000 / limit_value)
          else
            # setter
            @_max_pages = val
          end
        end

        def total_pages
          total = super
          total > max_pages ? max_pages : total
        end

        def next_page
          current_page + 1 unless last_page?
        end

        def prev_page
          current_page - 1 unless first_page?
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
europeana-blacklight-1.2.2 lib/europeana/blacklight/response/pagination.rb
europeana-blacklight-1.2.1 lib/europeana/blacklight/response/pagination.rb
europeana-blacklight-1.2.0 lib/europeana/blacklight/response/pagination.rb