class Travis::Client::Collection

Public Instance Methods

collection_key() click to toggle source
# File lib/travis/client/collection.rb, line 26
def collection_key
  @collection_key ||= begin
    session.fetch(@href) if @payload.keys.all? { |k| k.start_with? '@' }
    @payload.keys.detect { |k| !k.start_with?('@') and self[k].is_a? Array }
  end
end
each(&block) click to toggle source
# File lib/travis/client/collection.rb, line 55
def each(&block)
  return enum_for(:each) unless block
  on_page.each(&block)
  next_page&.each(&block)
  self
end
first_page() click to toggle source
# File lib/travis/client/collection.rb, line 45
def first_page
  return self if first_page?
  pagination_info['first']&.fetch
end
first_page?() click to toggle source
# File lib/travis/client/collection.rb, line 22
def first_page?
  pagination_info.fetch('is_first', true)
end
last_page() click to toggle source
# File lib/travis/client/collection.rb, line 50
def last_page
  return self if last_page?
  pagination_info['last']&.fetch
end
last_page?() click to toggle source
# File lib/travis/client/collection.rb, line 18
def last_page?
  pagination_info.fetch('is_last', true)
end
next_page() click to toggle source
# File lib/travis/client/collection.rb, line 37
def next_page
  pagination_info['next']&.fetch
end
offset() click to toggle source
# File lib/travis/client/collection.rb, line 10
def offset
  pagination_info['offset'] || 0
end
on_page() click to toggle source
# File lib/travis/client/collection.rb, line 14
def on_page
  @on_page ||= Array(@payload[collection_key])
end
paginates?() click to toggle source
# File lib/travis/client/collection.rb, line 6
def paginates?
  !!@payload['@pagination']
end
pagination_info() click to toggle source
# File lib/travis/client/collection.rb, line 62
def pagination_info
  @pagination_info ||= @payload['@pagination'] || {}
end
previous_page() click to toggle source
# File lib/travis/client/collection.rb, line 41
def previous_page
  pagination_info['prev']&.fetch
end
size() click to toggle source
# File lib/travis/client/collection.rb, line 33
def size
  pagination_info['count'] || on_page.size
end