eventbrite_sdk 3.0.2 → 3.0.3

Sign up to get free protection for your applications and to get access to all the features.
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