Class: EventbriteSDK::ResourceList

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Enumerable
Defined in:
lib/eventbrite_sdk/resource_list.rb

Direct Known Subclasses

Lists::OwnedEventOrdersList

Instance Method Summary collapse

Constructor Details

#initialize(url_base: nil, object_class: nil, key: nil, query: {}, request: EventbriteSDK) ⇒ ResourceList

Returns a new instance of ResourceList.



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 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

Instance Method Details

#concat(other) ⇒ Object



23
24
25
# File 'lib/eventbrite_sdk/resource_list.rb', line 23

def concat(other)
  other.concat(to_ary)
end

#next_page(api_token: nil) ⇒ Object



40
41
42
43
44
# File 'lib/eventbrite_sdk/resource_list.rb', line 40

def next_page(api_token: nil)
  return if page_number >= (page_count || 1)

  page(pagination['page_number'] + 1, api_token: api_token)
end

#page(num, api_token: nil) ⇒ Object



34
35
36
37
38
# File 'lib/eventbrite_sdk/resource_list.rb', line 34

def page(num, api_token: nil)
  pagination['page_number'] = num

  retrieve(api_token: api_token)
end

#prev_page(api_token: nil) ⇒ Object



46
47
48
49
50
# File 'lib/eventbrite_sdk/resource_list.rb', line 46

def prev_page(api_token: nil)
  return if page_number <= 1

  page(pagination['page_number'] - 1, api_token: api_token)
end

#retrieve(query: {}, api_token: nil) ⇒ Object



27
28
29
30
31
32
# File 'lib/eventbrite_sdk/resource_list.rb', line 27

def retrieve(query: {}, api_token: nil)
  @query.merge!(query)
  load_response(api_token)

  self
end

#to_aryObject



56
57
58
# File 'lib/eventbrite_sdk/resource_list.rb', line 56

def to_ary
  objects
end

#to_json(opts = {}) ⇒ Object



60
61
62
# File 'lib/eventbrite_sdk/resource_list.rb', line 60

def to_json(opts = {})
  { key => objects.map(&:to_h), 'pagination' => @pagination }.to_json(opts)
end

#with_expansion(*args) ⇒ Object



64
65
66
67
68
69
70
71
72
# File 'lib/eventbrite_sdk/resource_list.rb', line 64

def with_expansion(*args)
  if args.first
    @query[:expand] = args.join(',')
  else
    @query.delete(:expand)
  end

  self
end