Sha256: 52348509d4b93f17a53ddb3e2afe0cf8bd25fcb0017edc5def270011f52c1dca
Contents?: true
Size: 967 Bytes
Versions: 1
Compression:
Stored size: 967 Bytes
Contents
module Neo4j 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, order = nil) #partial = source.drop((page-1) * per_page).first(per_page) target = source.node_var partial = source.skip(page-1).limit(per_page) ordered_partial, ordered_source = if order [partial.order_by(order), source.query.with("#{target} as #{target}").pluck("COUNT(#{target})").first] else [partial, source.count] end Paginated.new(ordered_partial, ordered_source, page) end delegate :each, :to => :items delegate :pluck, :to => :items delegate :size, :[], :to => :items end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
neo4j-3.0.3 | lib/neo4j/paginated.rb |