eventbrite_sdk 3.1.1 → 3.1.2

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: a1bdc8c292e5a97ac5b20031869bdbb311e9e257
4
- data.tar.gz: 536b3b8887f554d78300dfe1b8fd1bc486b478f0
3
+ metadata.gz: a6c4ed26197ecfa0bb499f4c5f35669dcfeb8559
4
+ data.tar.gz: 101b6680b4e1d1d3c4be36cb49117def4e71ac5e
5
5
  SHA512:
6
- metadata.gz: d86841a8009ac234f84f6511ed33e384668b386bb24f22308bb4b7390b8095b0c0ec1b8a35746f6338471e9bedd9787fca43fc607efd93f9d44ba954ee8dba5d
7
- data.tar.gz: 658111dafb417f99bd5212f8efa87e9043ee2e5a674f00199646afc52a1dd3b70defb524bfb8d69c857d7489d5c78fbcdcf3b4a66b63ded2b23dc44e7803b553
6
+ metadata.gz: e2987dfccde3bbb93dcac5d4222eed4c8fb65354b0463a98c5d6d32f3d4652c3c4cffe60ec2b1a216647144545b206c74bb10258ba1f576f32cdbe1dbeedc16d
7
+ data.tar.gz: d1f4cf26821103f143e91fede4e3b3854132c38cac55470d69e0b081937a82bcaac3c03eb357e0da07de3846310f7839b7cf22436c31866f0900aa20bf2e165d
data/.gitignore CHANGED
@@ -1,2 +1,4 @@
1
1
  Gemfile.lock
2
- coverage/
2
+ .byebug_history
3
+ coverage/
4
+ tmp/
@@ -14,6 +14,8 @@ require 'eventbrite_sdk/resource/null_schema_definition'
14
14
  require 'eventbrite_sdk/resource/schema_definition'
15
15
  require 'eventbrite_sdk/blank_resource_list'
16
16
  require 'eventbrite_sdk/resource'
17
+ require 'eventbrite_sdk/resource/field'
18
+ require 'eventbrite_sdk/resource/field_comparable'
17
19
  require 'eventbrite_sdk/resource_list'
18
20
 
19
21
  require 'eventbrite_sdk/lists/owned_event_orders_list'
@@ -36,23 +38,23 @@ module EventbriteSDK
36
38
  EXCEPTION_MAP = {
37
39
  RestClient::ResourceNotFound => {
38
40
  class: ResourceNotFound,
39
- message: 'requested object was not found',
41
+ message: 'requested object was not found'
40
42
  },
41
43
  RestClient::BadRequest => {
42
44
  class: BadRequest,
43
- message: 'invalid request',
45
+ message: 'invalid request'
44
46
  },
45
47
  RestClient::Forbidden => {
46
48
  class: Forbidden,
47
- message: 'not authorized',
49
+ message: 'not authorized'
48
50
  },
49
51
  RestClient::InternalServerError => {
50
52
  class: InternalServerError,
51
- message: 'internal server error',
53
+ message: 'internal server error'
52
54
  },
53
55
  RestClient::Unauthorized => {
54
56
  class: Unauthorized,
55
- message: 'unauthorized request',
57
+ message: 'unauthorized request'
56
58
  }
57
59
  }.freeze
58
60
  THREAD_EB_API_TOKEN_KEY = :eb_api_token
@@ -101,9 +103,7 @@ module EventbriteSDK
101
103
  #
102
104
  # BadRequest is raised when you publish an event because the body sent is
103
105
  # "null" (invalid json) and the API rejects it.
104
- if params[:payload]
105
- params[:payload] = params[:payload].to_json
106
- end
106
+ params[:payload] = params[:payload].to_json if params[:payload]
107
107
 
108
108
  request(params)
109
109
  end
@@ -18,8 +18,8 @@ module EventbriteSDK
18
18
  integer 'quantity'
19
19
  string 'profile'
20
20
  string 'costs'
21
- datetime 'created', read_only: true
22
- datetime 'changed', read_only: true
21
+ utc 'created', read_only: true
22
+ utc 'changed', read_only: true
23
23
  string 'resource_uri', read_only: true
24
24
  end
25
25
  end
@@ -34,5 +34,14 @@ module EventbriteSDK
34
34
  def to_json(opts = {})
35
35
  { @key => [] }.to_json(opts)
36
36
  end
37
+
38
+ # Blank lists need to respond to the pagination helpers.
39
+ def object_count
40
+ 0
41
+ end
42
+
43
+ %i(page_count page_number page_size).each do |name|
44
+ define_method(name) { 1 }
45
+ end
37
46
  end
38
47
  end
@@ -21,13 +21,11 @@ module EventbriteSDK
21
21
  has_many :ticket_classes, object_class: 'TicketClass'
22
22
 
23
23
  schema_definition do
24
- string 'name.html'
25
- string 'description.html'
24
+ multipart 'name'
25
+ multipart 'description'
26
26
  string 'organizer_id'
27
- datetime 'start.utc'
28
- datetime 'start.timezone'
29
- datetime 'end.utc'
30
- datetime 'end.timezone'
27
+ datetime 'start'
28
+ datetime 'end'
31
29
  boolean 'hide_start_date'
32
30
  boolean 'hide_end_date'
33
31
  string 'currency'
@@ -45,8 +43,8 @@ module EventbriteSDK
45
43
  boolean 'show_remaining'
46
44
  string 'source'
47
45
  string 'status', read_only: true
48
- string 'created', read_only: true
49
- string 'changed', read_only: true
46
+ utc 'created', read_only: true
47
+ utc 'changed', read_only: true
50
48
  string 'resource_uri', read_only: true
51
49
  end
52
50
 
@@ -1,7 +1,6 @@
1
1
  module EventbriteSDK
2
2
  # This module implements media upload to Eventbrite based on:
3
3
  # https://docs.evbhome.com/apidocs/reference/uploads/?highlight=logo
4
-
5
4
  class Media < Resource
6
5
  resource_path 'media/:id'
7
6
 
@@ -11,7 +10,7 @@ module EventbriteSDK
11
10
  event_logo: 'image-event-logo',
12
11
  organizer_logo: 'image-organizer-logo',
13
12
  user_photo: 'image-user-photo',
14
- event_view_from_seat: 'image-event-view-from-seat',
13
+ event_view_from_seat: 'image-event-view-from-seat'
15
14
  }.freeze
16
15
 
17
16
  schema_definition do
@@ -46,9 +45,7 @@ module EventbriteSDK
46
45
  type = VALID_TYPES[image_type]
47
46
 
48
47
  unless type
49
- raise ArgumentError.new(
50
- "image_type needs to be one of #{VALID_TYPES.keys}"
51
- )
48
+ raise ArgumentError, "image_type needs to be one of #{VALID_TYPES.keys}"
52
49
  end
53
50
 
54
51
  request.get(url: path('upload'), query: { type: type })
@@ -58,7 +55,7 @@ module EventbriteSDK
58
55
  RestClient.post(
59
56
  instructions['upload_url'],
60
57
  instructions['upload_data'].merge(file: file),
61
- multipart: true,
58
+ multipart: true
62
59
  )
63
60
  end
64
61
 
@@ -6,7 +6,7 @@ module EventbriteSDK
6
6
  #
7
7
  # When an event has an id the POST is made, otherwise we return false
8
8
  # POSTS to order/:id/(resend_confirmation_email|refunds)
9
- define_api_actions :resend_confirmation_email, { refund: :refunds }
9
+ define_api_actions :resend_confirmation_email, refund: :refunds
10
10
 
11
11
  has_many :attendees, object_class: 'Attendee'
12
12
  belongs_to :event, object_class: 'Event'
@@ -17,8 +17,8 @@ module EventbriteSDK
17
17
  string 'last_name'
18
18
  string 'email'
19
19
  string 'costs'
20
- datetime 'created', read_only: true
21
- datetime 'changed', read_only: true
20
+ utc 'created', read_only: true
21
+ utc 'changed', read_only: true
22
22
  string 'resource_uri', read_only: true
23
23
  end
24
24
  end
@@ -8,8 +8,8 @@ module EventbriteSDK
8
8
 
9
9
  schema_definition do
10
10
  string 'name'
11
- string 'description.html'
12
- string 'long_description.html'
11
+ multipart 'description'
12
+ multipart 'long_description'
13
13
  string 'logo.id'
14
14
  string 'website'
15
15
  string 'twitter'
@@ -1,15 +1,14 @@
1
1
  module EventbriteSDK
2
2
  class Report
3
- STRING_KEYS = %i(
3
+ STRING_KEYS = %i[
4
4
  start_date
5
5
  end_date
6
6
  date_facet
7
7
  event_status
8
8
  timezone
9
9
  group_by
10
- ).freeze
11
-
12
- VALID_REPORTS = %i(attendees sales).freeze
10
+ ].freeze
11
+ VALID_REPORTS = %i[attendees sales].freeze
13
12
 
14
13
  def initialize
15
14
  @query = {}
@@ -27,7 +27,7 @@ module EventbriteSDK
27
27
  # !new? && EventbriteSDK.post(url: path('unpublish'))
28
28
  # end
29
29
  def self.define_api_actions(*actions)
30
- req = ->(inst, postfix) do
30
+ req = lambda do |inst, postfix|
31
31
  inst.instance_eval { !new? && EventbriteSDK.post(url: path(postfix)) }
32
32
  end
33
33
 
@@ -51,10 +51,10 @@ module EventbriteSDK
51
51
  end
52
52
 
53
53
  def refresh!(request: EventbriteSDK, api_token: nil)
54
- unless new?
55
- reload request.get(url: path, api_token: api_token)
56
- else
54
+ if new?
57
55
  false
56
+ else
57
+ reload request.get(url: path, api_token: api_token)
58
58
  end
59
59
  end
60
60
 
@@ -63,15 +63,15 @@ module EventbriteSDK
63
63
  end
64
64
 
65
65
  def save(postfixed_path = '', api_token: nil, request: EventbriteSDK)
66
- if changed? || !postfixed_path.empty?
67
- response = request.post(url: path(postfixed_path),
68
- payload: attrs.payload(self.class.prefix),
69
- api_token: api_token)
66
+ return unless changed? || !postfixed_path.empty?
70
67
 
71
- reload(response)
68
+ response = request.post(url: path(postfixed_path),
69
+ payload: attrs.payload(self.class.prefix),
70
+ api_token: api_token)
72
71
 
73
- true
74
- end
72
+ reload(response)
73
+
74
+ true
75
75
  end
76
76
 
77
77
  def to_json(opts = {})
@@ -1,11 +1,6 @@
1
1
  module EventbriteSDK
2
2
  class Resource
3
3
  class Attributes
4
- SISTER_FIELDS = {
5
- 'timezone' => 'utc',
6
- 'utc' => 'timezone'
7
- }.freeze
8
-
9
4
  attr_reader :attrs, :changes
10
5
 
11
6
  def self.build(attrs, schema)
@@ -15,14 +10,13 @@ module EventbriteSDK
15
10
  end
16
11
 
17
12
  def initialize(hydrated_attrs = {}, schema = NullSchemaDefinition.new)
18
- @attrs = {}
19
13
  @changes = {}
20
14
  @schema = schema
21
15
 
22
16
  # Build out initial hash based on schema's defined keys
23
- schema.defined_keys.each { |key| bury_attribute(key, nil) }
24
-
25
- @attrs = attrs.merge(stringify_keys(hydrated_attrs))
17
+ @attrs = schema.defined_keys.each_with_object({}) do |key, attrs|
18
+ Field.new(key, nil).bury(attrs)
19
+ end.merge(stringify_keys(hydrated_attrs))
26
20
  end
27
21
 
28
22
  def [](key)
@@ -31,7 +25,8 @@ module EventbriteSDK
31
25
 
32
26
  def assign_attributes(new_attrs)
33
27
  stringify_keys(new_attrs).each do |attribute_key, value|
34
- assign_value(attribute_key, value) if schema.writeable?(attribute_key)
28
+ value = Field.new(attribute_key, value, schema: schema)
29
+ changes.merge! value.apply(attrs, changes)
35
30
  end
36
31
 
37
32
  nil
@@ -55,7 +50,7 @@ module EventbriteSDK
55
50
 
56
51
  def reset!
57
52
  changes.each do |attribute_key, (old_value, _current_value)|
58
- bury_attribute(attribute_key, old_value)
53
+ Field.new(attribute_key, old_value).bury(attrs)
59
54
  end
60
55
 
61
56
  @changes = {}
@@ -68,18 +63,12 @@ module EventbriteSDK
68
63
  # prefix: This is needed due to inconsistencies in the EB API
69
64
  # Sometimes there's a prefix, sometimes there's not,
70
65
  # sometimes it's singular, sometimes it's plural.
71
- # Once the API gets a bit more nomalized we can remove this
72
- # alltogether and infer a prefix based
66
+ # Once the API gets a bit more normalized we can remove this
67
+ # altogether and infer a prefix based
73
68
  # on the class name of the resource
74
69
  def payload(prefix = nil)
75
70
  changes.each_with_object({}) do |(attribute_key, (_, value)), payload|
76
- key = if prefix
77
- "#{prefix}.#{attribute_key}"
78
- else
79
- attribute_key
80
- end
81
-
82
- bury(key, value, payload)
71
+ Field.new(attribute_key, value, prefix: prefix).bury(payload)
83
72
  end
84
73
  end
85
74
 
@@ -91,52 +80,10 @@ module EventbriteSDK
91
80
 
92
81
  attr_reader :schema
93
82
 
94
- def assign_value(attribute_key, value)
95
- dirty_check(attribute_key, value)
96
- add_rich_value(attribute_key)
97
- bury_attribute(attribute_key, value)
98
- end
99
-
100
- def dirty_check(attribute_key, value)
101
- initial_value = attrs.dig(*attribute_key.split('.'))
102
-
103
- if initial_value != value
104
- changes[attribute_key] = [initial_value, value]
105
- end
106
- end
107
-
108
- def bury_attribute(attribute_key, value)
109
- bury(attribute_key, value, attrs)
110
- end
111
-
112
- # Since we use dirty checking to determine what the payload is
113
- # you can run into a case where a "rich media" field needs other attrs
114
- # Namely timezone, so if a rich date changed, add the tz with it.
115
- def add_rich_value(attribute_key)
116
- if changes[attribute_key] && attribute_key =~ /\A(.+)\.(utc|timezone)\z/
117
- field = Regexp.last_match(2)
118
- key_prefix = Regexp.last_match(1)
119
-
120
- handle_sister_field(key_prefix, field)
121
- end
122
- end
123
-
124
- def bury(attribute_key, value, hash = {})
125
- keys = attribute_key.split '.'
126
-
127
- # Hand rolling #bury
128
- # hopefully we get it in the next release of Ruby
129
- keys.each_cons(2).reduce(hash) do |prev_attrs, (key, _)|
130
- prev_attrs[key] ||= {}
131
- end[keys.last] = value
132
-
133
- hash
134
- end
135
-
136
83
  def method_missing(method_name, *_args, &_block)
137
84
  requested_key = method_name.to_s
138
85
 
139
- if attrs.has_key?(requested_key)
86
+ if attrs.key?(requested_key)
140
87
  handle_requested_attr(attrs[requested_key])
141
88
  else
142
89
  super
@@ -144,16 +91,7 @@ module EventbriteSDK
144
91
  end
145
92
 
146
93
  def respond_to_missing?(method_name, _include_private = false)
147
- attrs.has_key?(method_name.to_s) || super
148
- end
149
-
150
- def handle_sister_field(key_prefix, field)
151
- sister_field = SISTER_FIELDS[field]
152
- stale_value = attrs.dig(key_prefix, sister_field)
153
-
154
- unless changes["#{key_prefix}.#{sister_field}"]
155
- changes["#{key_prefix}.#{sister_field}"] = [stale_value, stale_value]
156
- end
94
+ attrs.key?(method_name.to_s) || super
157
95
  end
158
96
 
159
97
  def handle_requested_attr(value)
@@ -0,0 +1,90 @@
1
+ module EventbriteSDK
2
+ class Resource
3
+ class Field
4
+ SIBLING_KEYMAP = { 'timezone' => 'utc', 'utc' => 'timezone' }.freeze
5
+ SIBLING_REGEX = /\A(.+)\.(utc|timezone)\z/
6
+
7
+ attr_reader :key, :value, :initial_value
8
+
9
+ def initialize(key, value, prefix: nil, schema: NullSchemaDefinition.new)
10
+ @key = (prefix && "#{prefix}.#{key}") || key
11
+ @schema = schema
12
+ @value = value
13
+ @datetime = false
14
+ end
15
+
16
+ def changes(attrs, changes)
17
+ %i[basic_changes rich_changes].reduce({}) do |diff, method|
18
+ diff.merge send(method, attrs, changes)
19
+ end
20
+ end
21
+
22
+ def keys
23
+ key.split('.')
24
+ end
25
+
26
+ def writeable?
27
+ schema.writeable?(key)
28
+ end
29
+
30
+ def apply(attrs, existing_changes)
31
+ if writeable?
32
+ changes(attrs, existing_changes).tap { bury(attrs) }
33
+ else
34
+ {}
35
+ end
36
+ end
37
+
38
+ def bury(hash = {})
39
+ nested_keys = keys
40
+ # Hand rolling #bury, hopefully we get it in the next release of Ruby.
41
+ # UPDATE: we won't https://bugs.ruby-lang.org/issues/11747
42
+ nested_keys.each_cons(2).reduce(hash) do |prev_attrs, (nkey, _)|
43
+ prev_attrs[nkey] ||= {}
44
+ end[nested_keys.last] = value
45
+
46
+ hash
47
+ end
48
+
49
+ private
50
+
51
+ attr_reader :datetime, :schema
52
+
53
+ def basic_changes(attrs, _changes)
54
+ @initial_value = attrs.dig(*keys)
55
+ comp_value = schema.dirty_comparable(self)
56
+
57
+ (comp_value != value && { key => [initial_value, value] }) || {}
58
+ end
59
+
60
+ def rich_changes(attrs, changes)
61
+ if key =~ SIBLING_REGEX && !changes[sister_field]
62
+ @datetime = true
63
+ { sister_field => sister_change(attrs) }
64
+ else
65
+ {}
66
+ end
67
+ end
68
+
69
+ def sister
70
+ if key =~ SIBLING_REGEX
71
+ key_prefix = Regexp.last_match(1)
72
+ sister_field = SIBLING_KEYMAP[Regexp.last_match(2)]
73
+
74
+ [key_prefix, sister_field]
75
+ end
76
+ end
77
+
78
+ def sister_field
79
+ sister.join('.')
80
+ end
81
+
82
+ # Since we use dirty checking to determine what the payload is
83
+ # you can run into a case where a "rich media" field needs other attrs
84
+ # Namely timezone, so if a rich date changed, add the tz with it.
85
+ def sister_change(attrs)
86
+ Array.new(2) { attrs.dig(*sister) }
87
+ end
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,13 @@
1
+ module EventbriteSDK
2
+ class Resource
3
+ class FieldComparable
4
+ def value_for(type, field)
5
+ if type == :currency && field.initial_value
6
+ field.initial_value.values_at(:currency, :value).join(',')
7
+ else
8
+ field.initial_value
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -8,6 +8,10 @@ module EventbriteSDK
8
8
  def defined_keys
9
9
  []
10
10
  end
11
+
12
+ def dirty_comparable(field)
13
+ field.initial_value
14
+ end
11
15
  end
12
16
  end
13
17
  end
@@ -1,18 +1,26 @@
1
+ require 'byebug'
1
2
  module EventbriteSDK
2
3
  class Resource
3
4
  class SchemaDefinition
4
5
  def initialize(resource_name)
5
- @resource_name = resource_name
6
- @read_only_keys = Set.new
7
6
  @attrs = {}
7
+ @read_only_keys = Set.new
8
+ @comparable = FieldComparable.new
9
+ @resource_name = resource_name
8
10
  end
9
11
 
10
- %i(boolean currency datetime integer string).each do |method|
12
+ %i[
13
+ boolean
14
+ currency
15
+ datetime
16
+ integer
17
+ multipart
18
+ string
19
+ utc
20
+ ].each do |method|
11
21
  define_method(method) do |value, *opts|
12
- options = opts.first
13
-
14
- @read_only_keys << value if options && options[:read_only]
15
- @attrs[value] = method
22
+ add_field_options(opts, value, method)
23
+ add_field(opts, value, method)
16
24
  end
17
25
  end
18
26
 
@@ -28,9 +36,44 @@ module EventbriteSDK
28
36
  attrs.keys
29
37
  end
30
38
 
39
+ def dirty_comparable(field)
40
+ comparable.value_for(attrs[field.key], field)
41
+ end
42
+
31
43
  private
32
44
 
33
- attr_reader :read_only_keys, :resource_name, :attrs
45
+ attr_reader :comparable ,:read_only_keys, :resource_name, :attrs
46
+
47
+ def add_field_options(opts, value, _method)
48
+ options = opts.first
49
+ @read_only_keys << value if options && options[:read_only]
50
+ end
51
+
52
+ def add_field(_options, value, method)
53
+ @attrs[value] = method
54
+ send(:"#{method}_expansion", value)
55
+ end
56
+
57
+ # The following fields are NO-OP expansions
58
+ %i[boolean integer multipart string utc].each do |type|
59
+ define_method("#{type}_expansion") { |val| }
60
+ end
61
+
62
+ def currency_expansion(value)
63
+ generic_expansion(%w[currency display value], value)
64
+ end
65
+
66
+ def datetime_expansion(value)
67
+ generic_expansion(%w[local utc timezone], value)
68
+ end
69
+
70
+ def multipart_expansion(value)
71
+ generic_expansion(%i[html text], value)
72
+ end
73
+
74
+ def generic_expansion(types, value)
75
+ types.map { |exp| @attrs["#{value}.#{exp}"] = :string }
76
+ end
34
77
 
35
78
  def read_only?(key)
36
79
  read_only_keys.member?(key)
@@ -49,7 +49,7 @@ module EventbriteSDK
49
49
  page(pagination['page_number'] - 1, api_token: api_token)
50
50
  end
51
51
 
52
- %w(object_count page_number page_size page_count).each do |method|
52
+ %w[object_count page_number page_size page_count].each do |method|
53
53
  define_method(method) { pagination[method] }
54
54
  end
55
55
 
@@ -73,6 +73,14 @@ module EventbriteSDK
73
73
 
74
74
  private
75
75
 
76
+ attr_reader :expansion,
77
+ :key,
78
+ :object_class,
79
+ :objects,
80
+ :query,
81
+ :request,
82
+ :url_base
83
+
76
84
  def pagination
77
85
  @pagination ||= { 'page_count' => 1, 'page_number' => 1 }
78
86
  end
@@ -87,13 +95,5 @@ module EventbriteSDK
87
95
  @objects = (response[key.to_s] || []).map { |raw| object_class.new(raw) }
88
96
  @pagination = response['pagination']
89
97
  end
90
-
91
- attr_reader :expansion,
92
- :key,
93
- :object_class,
94
- :objects,
95
- :query,
96
- :request,
97
- :url_base
98
98
  end
99
99
  end
@@ -26,8 +26,8 @@ module EventbriteSDK
26
26
  boolean 'include_fee'
27
27
  boolean 'split_fee'
28
28
  string 'sales_channels'
29
- datetime 'sales_start'
30
- datetime 'sales_end'
29
+ utc 'sales_start'
30
+ utc 'sales_end'
31
31
  string 'sales_start_after'
32
32
  integer 'minimum_quantity'
33
33
  integer 'maximum_quantity'
@@ -50,7 +50,7 @@ module EventbriteSDK
50
50
  end
51
51
 
52
52
  def unhide!
53
- ! hidden || change('hidden' => false)
53
+ !hidden || change('hidden' => false)
54
54
  end
55
55
 
56
56
  def change(attrs)
@@ -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.1.1'.freeze
4
+ VERSION = '3.1.2'.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.1.1
4
+ version: 3.1.2
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-08-16 00:00:00.000000000 Z
13
+ date: 2017-08-30 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rest-client
@@ -129,6 +129,8 @@ files:
129
129
  - lib/eventbrite_sdk/report.rb
130
130
  - lib/eventbrite_sdk/resource.rb
131
131
  - lib/eventbrite_sdk/resource/attributes.rb
132
+ - lib/eventbrite_sdk/resource/field.rb
133
+ - lib/eventbrite_sdk/resource/field_comparable.rb
132
134
  - lib/eventbrite_sdk/resource/null_schema_definition.rb
133
135
  - lib/eventbrite_sdk/resource/operations/attribute_schema.rb
134
136
  - lib/eventbrite_sdk/resource/operations/endpoint.rb
@@ -162,7 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
162
164
  version: '0'
163
165
  requirements: []
164
166
  rubyforge_project:
165
- rubygems_version: 2.5.2
167
+ rubygems_version: 2.6.13
166
168
  signing_key:
167
169
  specification_version: 4
168
170
  summary: Official Eventbrite SDK for the v3 API