eventbrite_sdk 3.0.2 → 3.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: aef4bd7cbff3bc00c26d9ad6a8464a63a32e5f49
4
- data.tar.gz: 07698a50a146d4064efaa277d8751b6b304874da
3
+ metadata.gz: ad86294660fcc8213709f99ad178fa0bfa4c859a
4
+ data.tar.gz: 66d814e44489b0b1c17c588a9ff89efe1b4ed68b
5
5
  SHA512:
6
- metadata.gz: 8208735f81b9f03f58f19758b278427ffd733aad34af65e6ed3c3d9711ecbe56d1f4eb4732ce031c017047e043ce5bcab842088718ec9a8cf881d371f93d07a4
7
- data.tar.gz: 3751f3956c63b5de6850d959d6314ac59ce2485cbcdebd3601a155328083e0cfd867dbf4c025813e7ce85138f55eea3aa0c05a57a77b42e4f23aac5675b79480
6
+ metadata.gz: eb1c57b8aa913a1587443ba666e227100f58d9681715346f68e972d1e737411330ca512ee53dec2b595244d23ebf144d1586d6a4d9355d6c4a0522dbe4b674f0
7
+ data.tar.gz: e528566f1fc57c1d0df9a07982616d0f1ce5c1937af395c290079605ef2b973cfc89160ab71d53f69b20bd42b0e18552ba70d73cd589e09bfb259bee8b846acf
@@ -11,8 +11,9 @@ require 'eventbrite_sdk/resource/operations/relationships'
11
11
  require 'eventbrite_sdk/resource/attributes'
12
12
  require 'eventbrite_sdk/resource/null_schema_definition'
13
13
  require 'eventbrite_sdk/resource/schema_definition'
14
- require 'eventbrite_sdk/resource_list'
14
+ require 'eventbrite_sdk/blank_resource_list'
15
15
  require 'eventbrite_sdk/resource'
16
+ require 'eventbrite_sdk/resource_list'
16
17
 
17
18
  require 'eventbrite_sdk/lists/owned_event_orders_list'
18
19
 
@@ -0,0 +1,34 @@
1
+ module EventbriteSDK
2
+ # An Empty resource listing, returned on ORM calls from new resources
3
+ class BlankResourceList
4
+ extend Forwardable
5
+ include Enumerable
6
+
7
+ def_delegators :@objects, :[], :each, :empty?
8
+
9
+ def initialize(key: nil)
10
+ @key = key
11
+ @objects = []
12
+ end
13
+
14
+ %i(
15
+ next_page
16
+ prev_page
17
+ retrieve
18
+ ).each do |method|
19
+ define_method(method) { self }
20
+ end
21
+
22
+ def page(_num)
23
+ self
24
+ end
25
+
26
+ def with_expansion(*_args)
27
+ self
28
+ end
29
+
30
+ def to_json(opts = {})
31
+ { @key => [] }.to_json(opts)
32
+ end
33
+ end
34
+ end
@@ -50,31 +50,32 @@ module EventbriteSDK
50
50
  # a method on the instance with the given +rel_method+
51
51
  # ============================================
52
52
  #
53
- # class Car
54
- # include Resource::Operations::Relationships
53
+ # class Car
54
+ # include Resource::Operations::Relationships
55
55
  #
56
- # has_many :wheels, object: 'Wheel', key: 'wheels'
56
+ # has_many :wheels, object: 'Wheel', key: 'wheels'
57
57
  #
58
- # def resource_path(postfix)
59
- # "my_path/1/#{postfix}"
60
- # end
58
+ # def resource_path(postfix)
59
+ # "my_path/1/#{postfix}"
60
+ # end
61
61
  #
62
- # ...
63
- # end
62
+ # # ...
63
+ # end
64
64
  #
65
- # Car.new('id' => '1').wheels
65
+ # Car.new('id' => '1').wheels
66
66
  #
67
67
  # Would instantiate a new ResourceList
68
68
  #
69
- # ResourceList.new(
70
- # url_base: 'my_path/1/wheels',
71
- # object_class: Wheel,
72
- # key: :wheels
73
- # )
69
+ # ResourceList.new(
70
+ # url_base: 'my_path/1/wheels',
71
+ # object_class: Wheel,
72
+ # key: :wheels
73
+ # )
74
74
  #
75
75
  # rel_method: Symbol of the method we are defining on this instance
76
76
  # object_class: String representation of the Class we will give
77
- # to ResourceList
77
+ # to ResourceList
78
+ #
78
79
  # key: key to use when ResourceList is extracting objects from
79
80
  # a list payload, if nil then rel_method is used as a default
80
81
  #
@@ -82,11 +83,16 @@ module EventbriteSDK
82
83
  define_method(rel_method) do
83
84
  key ||= rel_method
84
85
 
85
- relationships[rel_method] ||= list_class(rel_method).new(
86
- url_base: path(rel_method),
87
- object_class: resource_class_from_string(object_class),
88
- key: key
89
- )
86
+ # Don't memoize if it's a new instance
87
+ if new?
88
+ BlankResourceList.new(key: key)
89
+ else
90
+ relationships[rel_method] ||= list_class(rel_method).new(
91
+ url_base: path(rel_method),
92
+ object_class: resource_class_from_string(object_class),
93
+ key: key
94
+ )
95
+ end
90
96
  end
91
97
  end
92
98
  end
@@ -1,5 +1,5 @@
1
1
  module EventbriteSDK
2
2
  # Major should always line up with the major point release of the public API
3
3
  # v3 => 3.x.x
4
- VERSION = '3.0.2'.freeze
4
+ VERSION = '3.0.3'.freeze
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eventbrite_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.2
4
+ version: 3.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vinnie Franco
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-02-13 00:00:00.000000000 Z
13
+ date: 2017-02-17 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rest-client
@@ -117,6 +117,7 @@ files:
117
117
  - eventbrite_sdk.gemspec
118
118
  - lib/eventbrite_sdk.rb
119
119
  - lib/eventbrite_sdk/attendee.rb
120
+ - lib/eventbrite_sdk/blank_resource_list.rb
120
121
  - lib/eventbrite_sdk/category.rb
121
122
  - lib/eventbrite_sdk/event.rb
122
123
  - lib/eventbrite_sdk/exceptions.rb