Sha256: 909b1ba1bfc731c822e939b35a5f0a538ca9ed151d76387b81b04953dad9ec0f

Contents?: true

Size: 781 Bytes

Versions: 15

Compression:

Stored size: 781 Bytes

Contents

module Neo4j

  # The class provides the pagination based on the given source.
  # The source must be an Enumerable implementing methods drop, first and count (or size).
  # This can be used to paginage any Enumerable collection and
  # provides the integration point for other gems, like will_paginate and kaminari.
  class Paginated
    include Enumerable
    attr_reader :items, :total, :current_page

    def initialize(items, total, current_page)
      @items, @total, @current_page = items, total, current_page
    end

    def self.create_from(source, page, per_page)
      partial = source.drop((page-1) * per_page).first(per_page)
      Paginated.new(partial, source.count, page)
    end

    delegate :each, :to => :items
    delegate :size, :[], :to => :items
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
neo4j-2.3.0-java lib/neo4j/paginated.rb
neo4j-2.2.4-java lib/neo4j/paginated.rb
neo4j-2.2.3-java lib/neo4j/paginated.rb
neo4j-2.2.1-java lib/neo4j/paginated.rb
neo4j-2.2.0-java lib/neo4j/paginated.rb
neo4j-2.2.0.rc1-java lib/neo4j/paginated.rb
neo4j-2.0.1-java lib/neo4j/paginated.rb
neo4j-2.0.0-java lib/neo4j/paginated.rb
neo4j-2.0.0.rc2-java lib/neo4j/paginated.rb
neo4j-2.0.0.rc1-java lib/neo4j/paginated.rb
neo4j-2.0.0.alpha.9-java lib/neo4j/paginated.rb
neo4j-2.0.0.alpha.8-java lib/neo4j/paginated.rb
neo4j-2.0.0.alpha.5-java lib/neo4j/paginated.rb
neo4j-2.0.0.alpha.4-java lib/neo4j/paginated.rb
neo4j-2.0.0.alpha.3-java lib/neo4j/paginated.rb