class Lurch::Collection
Attributes
resources[R]
Public Class Methods
new(resources, paginator)
click to toggle source
# File lib/lurch/collection.rb, line 7 def initialize(resources, paginator) @resources = resources @paginator = paginator end
Public Instance Methods
each(&block)
click to toggle source
# File lib/lurch/collection.rb, line 20 def each(&block) block_given? ? enum.each(&block) : enum end
each_page(&block)
click to toggle source
# File lib/lurch/collection.rb, line 24 def each_page(&block) block_given? ? page_enum.each(&block) : page_enum end
fetch()
click to toggle source
# File lib/lurch/collection.rb, line 16 def fetch self end
first?()
click to toggle source
# File lib/lurch/collection.rb, line 68 def first? @paginator ? @paginator.first? : false end
first_collection()
click to toggle source
# File lib/lurch/collection.rb, line 50 def first_collection return @first_collection if defined?(@first_collection) @first_collection = @paginator ? @paginator.first_collection : nil end
inspect()
click to toggle source
# File lib/lurch/collection.rb, line 76 def inspect suffix = @resources.first ? "[#{Inflector.classify(@resources.first.type)}]" : "" inspection = size ? ["size: #{size}"] : [] inspection << ["pages: #{page_count}"] if page_count "#<#{self.class}#{suffix} #{inspection.join(', ')}>" end
last?()
click to toggle source
# File lib/lurch/collection.rb, line 72 def last? @paginator ? @paginator.last? : false end
last_collection()
click to toggle source
# File lib/lurch/collection.rb, line 55 def last_collection return @last_collection if defined?(@last_collection) @last_collection = @paginator ? @paginator.last_collection : nil end
loaded?()
click to toggle source
# File lib/lurch/collection.rb, line 12 def loaded? true end
next?()
click to toggle source
# File lib/lurch/collection.rb, line 60 def next? @paginator ? @paginator.next? : false end
next_collection()
click to toggle source
# File lib/lurch/collection.rb, line 40 def next_collection return @next_collection if defined?(@next_collection) @next_collection = @paginator ? @paginator.next_collection : nil end
page_count()
click to toggle source
# File lib/lurch/collection.rb, line 36 def page_count @paginator.page_count if @paginator end
page_size()
click to toggle source
# File lib/lurch/collection.rb, line 32 def page_size @resources.size end
prev?()
click to toggle source
# File lib/lurch/collection.rb, line 64 def prev? @paginator ? @paginator.prev? : false end
prev_collection()
click to toggle source
# File lib/lurch/collection.rb, line 45 def prev_collection return @prev_collection if defined?(@prev_collection) @prev_collection = @paginator ? @paginator.prev_collection : nil end
size()
click to toggle source
# File lib/lurch/collection.rb, line 28 def size @paginator ? @paginator.record_count : @resources.size end
Private Instance Methods
enum()
click to toggle source
# File lib/lurch/collection.rb, line 85 def enum Enumerator.new(-> { size }) do |yielder| @resources.each do |resource| yielder.yield(resource) end if next_collection next_collection.each do |resource| yielder.yield(resource) end end end end
page_enum()
click to toggle source
# File lib/lurch/collection.rb, line 99 def page_enum Enumerator.new(-> { page_count }) do |yielder| yielder.yield(@resources) if next_collection next_collection.each_page do |page| yielder.yield(page) end end end end