module BooticClient::EnumerableEntity

Public Instance Methods

each(&block) click to toggle source
# File lib/bootic_client/entity.rb, line 9
def each(&block)
  self[:items].each &block
end
full_set() click to toggle source
# File lib/bootic_client/entity.rb, line 13
def full_set
  page = self

  Enumerator.new do |yielder|
    loop do
      page.each { |item| yielder.yield(item) }
      raise StopIteration unless page.has_rel?(:next)
      page = page.next

      if page.has?(:errors) # && page.errors.first.messages.first['cannot be higher'] # reached last page
        yielder.yield(nil, page.errors) # yield a nil value so caller can stop gracefully
        raise StopIteration
      end
    end
  end
end