class EventbriteSDK::ResourceList
Attributes
expansion[R]
key[R]
object_class[R]
objects[R]
query[R]
request[R]
url_base[R]
Public Class Methods
new( url_base: nil, object_class: nil, key: nil, query: {}, request: EventbriteSDK )
click to toggle source
# File lib/eventbrite_sdk/resource_list.rb, line 8 def initialize( url_base: nil, object_class: nil, key: nil, query: {}, request: EventbriteSDK ) @key = key @object_class = object_class @objects = [] @query = query @request = request @url_base = url_base end
Public Instance Methods
concat(other)
click to toggle source
# File lib/eventbrite_sdk/resource_list.rb, line 23 def concat(other) other.concat(to_ary) end
continue(continuation_token: nil, api_token: nil)
click to toggle source
# File lib/eventbrite_sdk/resource_list.rb, line 27 def continue(continuation_token: nil, api_token: nil) continuation_token ||= continuation return unless continuation_token || has_more_items retrieve( api_token: api_token, query: {continuation: continuation_token} ) end
next_page(api_token: nil)
click to toggle source
# File lib/eventbrite_sdk/resource_list.rb, line 52 def next_page(api_token: nil) return if page_number >= (page_count || 1) page(page_number + 1, api_token: api_token) end
page(num, api_token: nil)
click to toggle source
# File lib/eventbrite_sdk/resource_list.rb, line 45 def page(num, api_token: nil) retrieve( api_token: api_token, query: { page: num }, ) end
prev_page(api_token: nil)
click to toggle source
# File lib/eventbrite_sdk/resource_list.rb, line 58 def prev_page(api_token: nil) return if page_number <= 1 page(page_number - 1, api_token: api_token) end
retrieve(query: {}, api_token: nil)
click to toggle source
# File lib/eventbrite_sdk/resource_list.rb, line 38 def retrieve(query: {}, api_token: nil) @query.merge!(query) load_response(api_token) self end
to_ary()
click to toggle source
# File lib/eventbrite_sdk/resource_list.rb, line 75 def to_ary objects end
to_json(opts = {})
click to toggle source
# File lib/eventbrite_sdk/resource_list.rb, line 79 def to_json(opts = {}) { key => objects.map(&:to_h), 'pagination' => @pagination }.to_json(opts) end
with_expansion(*args)
click to toggle source
# File lib/eventbrite_sdk/resource_list.rb, line 83 def with_expansion(*args) if args.first @query[:expand] = args.join(',') else @query.delete(:expand) end self end
Private Instance Methods
load_response(api_token)
click to toggle source
# File lib/eventbrite_sdk/resource_list.rb, line 107 def load_response(api_token) response = request.get(api_token: api_token, query: query.dup, url: url_base) @objects = (response[key.to_s] || []).map { |raw| object_class.new(raw) } @pagination = response['pagination'] end
pagination()
click to toggle source
# File lib/eventbrite_sdk/resource_list.rb, line 103 def pagination @pagination ||= { 'page_count' => 1, 'page_number' => 1 } end