zendesk_api 1.13.4 → 1.14.0

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: 929e97f4f95119eb52613dd21e7bcdfdf812d880
4
- data.tar.gz: f6befca8e106dc2946d431ec7dbefafaca698db6
3
+ metadata.gz: 4a64888213cb6c8abea4f1edbb5274eb6b607dab
4
+ data.tar.gz: 78a77dc586781b4a0c252e72714cf1cdb6f575db
5
5
  SHA512:
6
- metadata.gz: 03043ac68eb0208d90dbf7757200270e29ea7e8e5341fc0dac9a1ca5b739c662ebff110ebd2a2bfbce0dad79e2b11aab0a0b6559e16105b41d7ca65733a9902d
7
- data.tar.gz: 462327e6ac915c8bc83f7e921d4198366ea2484c1b9d8e3958870c56e0fc97adf9ca9162537f2a1bf84c9fddc0b1c1fc0aa37cce1938d9f774dff89bd7e98def
6
+ metadata.gz: 2b84ca74868e867d1673389ac6ae2ee74f74b7d770dfbbc0c945091aac2423c5eb831e6ca994b571cad94a7fdcfac7e8758fac04eb8b25871e3f31d91a10284b
7
+ data.tar.gz: 5c895345dd76d401224fd7e78a12c3fea2e7ac768fcb7ce6be6a630ff4918de1f7723f4ccc0aa5a90eabf55c22c1ff5f7cc17dfd6d1e90e45b0ca8820c7be9e2
@@ -72,7 +72,7 @@ module ZendeskAPI
72
72
  changed = association.is_a?(Collection) || association.changed?
73
73
 
74
74
  if association.respond_to?(:save) && changed && !inline_creation && association.save
75
- self.send("#{association_name}=", association) # set id/ids columns
75
+ send("#{association_name}=", association) # set id/ids columns
76
76
  end
77
77
 
78
78
  if (association_data[:inline] == true || inline_creation) && changed
@@ -129,7 +129,7 @@ module ZendeskAPI
129
129
  # @param [Hash] options Any additional GET parameters to be added
130
130
  def find(client, options = {}, &block)
131
131
  find!(client, options, &block)
132
- rescue ZendeskAPI::Error::ClientError => e
132
+ rescue ZendeskAPI::Error::ClientError
133
133
  nil
134
134
  end
135
135
  end
@@ -150,7 +150,7 @@ module ZendeskAPI
150
150
  def build_parent_namespace(parent_class, instance, options, original_options)
151
151
  path = @options.path
152
152
 
153
- association_on_parent = parent_class.associations.detect {|a| a[:name] == @options[:name]}
153
+ association_on_parent = parent_class.associations.detect { |a| a[:name] == @options[:name] }
154
154
  association_on_parent ||= parent_class.associations.detect do |a|
155
155
  !a[:inline] && a[:class] == @options[:class]
156
156
  end
@@ -20,7 +20,7 @@ module ZendeskAPI
20
20
  case resource
21
21
  when Hash
22
22
  klass.new(@client, resource.merge(:association => instance_association))
23
- when String, Fixnum
23
+ when String, Integer
24
24
  klass.new(@client, (options[:include_key] || :id) => resource, :association => instance_association)
25
25
  else
26
26
  resource.association = instance_association
@@ -172,7 +172,7 @@ module ZendeskAPI
172
172
  klass.find(@client, :id => id, :association => instance_association)
173
173
  end.compact
174
174
  elsif (resources = method_missing(association[:name].to_sym)) && resources.any?
175
- resources.map {|res| wrap_resource(res, association)}
175
+ resources.map { |res| wrap_resource(res, association) }
176
176
  else
177
177
  []
178
178
  end
@@ -172,7 +172,7 @@ module ZendeskAPI
172
172
  builder.use ZendeskAPI::Middleware::Request::EncodeJson
173
173
  builder.use ZendeskAPI::Middleware::Request::Retry, :logger => config.logger if config.retry # Should always be first in the stack
174
174
 
175
- builder.adapter *adapter
175
+ builder.adapter(*adapter)
176
176
  end
177
177
  end
178
178
 
@@ -48,7 +48,7 @@ module ZendeskAPI
48
48
 
49
49
  # Methods that take a Hash argument
50
50
  methods = %w{create find update update_many destroy}
51
- methods += methods.map {|method| method + "!"}
51
+ methods += methods.map { |method| method + "!" }
52
52
  methods.each do |deferrable|
53
53
  # Passes arguments and the proper path to the resource class method.
54
54
  # @param [Hash] options Options or attributes to pass
@@ -152,7 +152,7 @@ module ZendeskAPI
152
152
  # Adds an item (or items) to the list of side-loaded resources to request
153
153
  # @option sideloads [Symbol or String] The item(s) to sideload
154
154
  def include(*sideloads)
155
- self.tap { @includes.concat(sideloads.map(&:to_s)) }
155
+ tap { @includes.concat(sideloads.map(&:to_s)) }
156
156
  end
157
157
 
158
158
  # Adds an item to this collection
@@ -186,7 +186,7 @@ module ZendeskAPI
186
186
  return (@resources = [])
187
187
  end
188
188
 
189
- @response = get_response(@query || self.path)
189
+ @response = get_response(@query || path)
190
190
  handle_response(@response.body)
191
191
 
192
192
  @resources
@@ -236,7 +236,7 @@ module ZendeskAPI
236
236
  # @option collection [Array] The collection to replace this one with
237
237
  # @raise [ArgumentError] if any resources passed in don't belong in this collection
238
238
  def replace(collection)
239
- raise "this collection is for #{@resource_class}" if collection.any?{|r| !r.is_a?(@resource_class) }
239
+ raise "this collection is for #{@resource_class}" if collection.any? { |r| !r.is_a?(@resource_class) }
240
240
  @resources = collection
241
241
  end
242
242
 
@@ -309,7 +309,7 @@ module ZendeskAPI
309
309
  inspect = []
310
310
  inspect << "options=#{@options.inspect}" if @options.any?
311
311
  inspect << "path=#{path}"
312
- "#{Inflection.singular(@resource)} collection [#{inspect.join(",")}]"
312
+ "#{Inflection.singular(@resource)} collection [#{inspect.join(',')}]"
313
313
  end
314
314
  end
315
315
 
@@ -398,7 +398,7 @@ module ZendeskAPI
398
398
  def get_response(path)
399
399
  @error = nil
400
400
  @response = @client.connection.send(@verb || "get", path) do |req|
401
- opts = @options.delete_if {|_, v| v.nil?}
401
+ opts = @options.delete_if { |_, v| v.nil? }
402
402
 
403
403
  req.params.merge!(:include => @includes.join(",")) if @includes.any?
404
404
 
@@ -3,18 +3,18 @@ module ZendeskAPI
3
3
  module Helpers
4
4
  # From https://github.com/rubyworks/facets/blob/master/lib/core/facets/string/modulize.rb
5
5
  def self.modulize_string(string)
6
- #gsub('__','/'). # why was this ever here?
7
- string.gsub(/__(.?)/){ "::#{$1.upcase}" }.
8
- gsub(/\/(.?)/){ "::#{$1.upcase}" }.
9
- gsub(/(?:_+|-+)([a-z])/){ $1.upcase }.
10
- gsub(/(\A|\s)([a-z])/){ $1 + $2.upcase }
6
+ # gsub('__','/'). # why was this ever here?
7
+ string.gsub(/__(.?)/) { "::#{$1.upcase}" }.
8
+ gsub(/\/(.?)/) { "::#{$1.upcase}" }.
9
+ gsub(/(?:_+|-+)([a-z])/) { $1.upcase }.
10
+ gsub(/(\A|\s)([a-z])/) { $1 + $2.upcase }
11
11
  end
12
12
 
13
13
  # From https://github.com/rubyworks/facets/blob/master/lib/core/facets/string/snakecase.rb
14
14
  def self.snakecase_string(string)
15
- #gsub(/::/, '/').
16
- string.gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
17
- gsub(/([a-z\d])([A-Z])/,'\1_\2').
15
+ # gsub(/::/, '/').
16
+ string.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2').
17
+ gsub(/([a-z\d])([A-Z])/, '\1_\2').
18
18
  tr('-', '_').
19
19
  gsub(/\s/, '_').
20
20
  gsub(/__+/, '_').
@@ -10,7 +10,7 @@ module ZendeskAPI
10
10
  DEFAULT_RETRY_AFTER = 10
11
11
  ERROR_CODES = [429, 503]
12
12
 
13
- def initialize(app, options={})
13
+ def initialize(app, options = {})
14
14
  super(app)
15
15
  @logger = options[:logger]
16
16
  end
@@ -12,7 +12,7 @@ module ZendeskAPI
12
12
 
13
13
  def call(env)
14
14
  @app.call(env).on_complete do |env|
15
- @client.callbacks.each {|c| c.call(env)}
15
+ @client.callbacks.each { |c| c.call(env) }
16
16
  end
17
17
  end
18
18
  end
@@ -17,7 +17,7 @@ module ZendeskAPI
17
17
 
18
18
  def parse_dates!(value)
19
19
  case value
20
- when Hash then value.each { |key,element| value[key] = parse_dates!(element) }
20
+ when Hash then value.each { |key, element| value[key] = parse_dates!(element) }
21
21
  when Array then value.each_with_index { |element, index| value[index] = parse_dates!(element) }
22
22
  when /\A\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z\Z/m then Time.parse(value)
23
23
  else
@@ -4,7 +4,6 @@ module ZendeskAPI
4
4
  module Middleware
5
5
  module Response
6
6
  class RaiseError < Faraday::Response::RaiseError
7
-
8
7
  def call(env)
9
8
  super
10
9
  rescue Faraday::Error::TimeoutError, Faraday::Error::ConnectionFailed => e
@@ -59,7 +59,7 @@ module ZendeskAPI
59
59
  @client = client
60
60
  @attributes = ZendeskAPI::Trackie.new(attributes)
61
61
 
62
- if self.class.associations.none? {|a| a[:name] == self.class.singular_resource_name}
62
+ if self.class.associations.none? { |a| a[:name] == self.class.singular_resource_name }
63
63
  ZendeskAPI::Client.check_deprecated_namespace_usage @attributes, self.class.singular_resource_name
64
64
  end
65
65
 
@@ -117,7 +117,7 @@ module ZendeskAPI
117
117
 
118
118
  # Compares resources by class and id. If id is nil, then by object_id
119
119
  def ==(other)
120
- return true if other.object_id == self.object_id
120
+ return true if other.object_id == object_id
121
121
 
122
122
  if other && !(other.is_a?(Data) || other.is_a?(Integer))
123
123
  warn "Trying to compare #{other.class} to a Resource from #{caller.first}"
@@ -195,6 +195,7 @@ module ZendeskAPI
195
195
  @descendants ||= []
196
196
  @descendants << base
197
197
  end
198
+
198
199
  def descendants
199
200
  @descendants || []
200
201
  end
@@ -1,14 +1,14 @@
1
1
  module ZendeskAPI
2
- # @internal The following are redefined later, but needed by some circular resources (e.g. Ticket -> User, User -> Ticket)
3
-
2
+ # @internal The following are redefined later, but needed by some circular resources (e.g. Ticket -> User, User -> Ticket)
4
3
 
5
4
  class Ticket < Resource; end
6
5
  class Forum < Resource; end
7
6
  class User < Resource; end
8
7
  class Category < Resource; end
9
8
  class OrganizationMembership < ReadResource; end
9
+ class OrganizationSubscription < ReadResource; end
10
10
 
11
- # @internal Begin actual Resource definitions
11
+ # @internal Begin actual Resource definitions
12
12
 
13
13
  class Locale < ReadResource; end
14
14
 
@@ -97,7 +97,9 @@ module ZendeskAPI
97
97
  include Create
98
98
  include Destroy
99
99
 
100
- def id; token; end
100
+ def id
101
+ token
102
+ end
101
103
 
102
104
  has_many Attachment
103
105
 
@@ -121,6 +123,7 @@ module ZendeskAPI
121
123
  has_many User
122
124
  has_many Tag, :extend => Tag::Update, :inline => :create
123
125
  has_many OrganizationMembership
126
+ has_many :subscriptions, class: OrganizationSubscription
124
127
 
125
128
  # Gets a incremental export of organizations from the start_time until now.
126
129
  # @param [Client] client The {Client} object to be used
@@ -156,6 +159,14 @@ module ZendeskAPI
156
159
  has Organization
157
160
  end
158
161
 
162
+ class OrganizationSubscription < ReadResource
163
+ include Create
164
+ include Destroy
165
+
166
+ has User
167
+ has Organization
168
+ end
169
+
159
170
  class Forum < Resource
160
171
  has Category
161
172
  has Organization
@@ -518,7 +529,7 @@ module ZendeskAPI
518
529
  private
519
530
 
520
531
  def attributes_for_save
521
- to_save = [:conditions, :actions, :output].inject({}) {|h,k| h.merge(k => send(k))}
532
+ to_save = [:conditions, :actions, :output].inject({}) { |h, k| h.merge(k => send(k)) }
522
533
  { self.class.singular_resource_name.to_sym => attributes.changes.merge(to_save) }
523
534
  end
524
535
  end
@@ -617,7 +628,7 @@ module ZendeskAPI
617
628
  # @param [Ticket] ticket Optional {Ticket} to apply this macro to
618
629
  def apply(ticket = nil)
619
630
  apply!(ticket)
620
- rescue Faraday::Error::ClientError => e
631
+ rescue Faraday::Error::ClientError
621
632
  Hashie::Mash.new
622
633
  end
623
634
  end
@@ -737,6 +748,7 @@ module ZendeskAPI
737
748
  has_many GroupMembership
738
749
  has_many Topic
739
750
  has_many OrganizationMembership
751
+ has_many OrganizationSubscription
740
752
 
741
753
  has_many ForumSubscription
742
754
  has_many TopicSubscription
@@ -956,7 +968,7 @@ module ZendeskAPI
956
968
  class PushNotificationDevice < DataResource
957
969
  def self.destroy_many(client, tokens)
958
970
  ZendeskAPI::Collection.new(
959
- client, self,"push_notification_devices" => tokens,
971
+ client, self, "push_notification_devices" => tokens,
960
972
  :path => "push_notification_devices/destroy_many",
961
973
  :verb => :post
962
974
  )
@@ -25,7 +25,6 @@ module ZendeskAPI
25
25
  end
26
26
  end
27
27
 
28
-
29
28
  private
30
29
 
31
30
  # Traverses the resource looking for associations
@@ -10,7 +10,7 @@ module ZendeskAPI
10
10
  base.send :alias_method, :store, :regular_writer
11
11
  base.send :alias_method, :[]=, :store
12
12
  base.send :define_method, :update do |other|
13
- other.each{|key, value| store key, value}
13
+ other.each { |key, value| store key, value }
14
14
  end
15
15
  base.send :alias_method, :merge!, :update
16
16
  end
@@ -41,11 +41,11 @@ module ZendeskAPI
41
41
  end
42
42
 
43
43
  def clear
44
- keys.each{|key| delete key}
44
+ keys.each { |key| delete key }
45
45
  end
46
46
 
47
47
  def regular_writer(key, value)
48
- if self.has_key?(key) && self[key] == value
48
+ if has_key?(key) && self[key] == value
49
49
  value
50
50
  else
51
51
  changes[key] = value
@@ -64,7 +64,7 @@ module ZendeskAPI
64
64
  each do |k, v|
65
65
  if v.respond_to?(:changed?) && v.changed?
66
66
  changes[k] = v.changes
67
- elsif v.is_a?(Array) && v.any? {|val| val.respond_to?(:changed?) && val.changed?}
67
+ elsif v.is_a?(Array) && v.any? { |val| val.respond_to?(:changed?) && val.changed? }
68
68
  changes[k] = v
69
69
  end
70
70
  end
@@ -73,7 +73,7 @@ module ZendeskAPI
73
73
 
74
74
  def changed?(key = nil)
75
75
  if key.nil?
76
- !changes.empty? || any? {|_, v| v.respond_to?(:changed?) && v.changed?}
76
+ !changes.empty? || any? { |_, v| v.respond_to?(:changed?) && v.changed? }
77
77
  else
78
78
  changes.key?(key)
79
79
  end
@@ -9,6 +9,5 @@ module ZendeskAPI
9
9
  def size
10
10
  self['size']
11
11
  end
12
-
13
12
  end
14
13
  end
@@ -33,7 +33,7 @@ module ZendeskAPI
33
33
 
34
34
  if @response.body.is_a?(Hash)
35
35
  resource = @response.body[self.class.singular_resource_name]
36
- resource ||= @response.body.fetch(self.class.resource_name, []).detect {|res| res["id"] == id}
36
+ resource ||= @response.body.fetch(self.class.resource_name, []).detect { |res| res["id"] == id }
37
37
  end
38
38
 
39
39
  @attributes.replace @attributes.deep_merge(resource || {})
@@ -1,3 +1,3 @@
1
1
  module ZendeskAPI
2
- VERSION = "1.13.4"
2
+ VERSION = "1.14.0"
3
3
  end
@@ -10,7 +10,7 @@ class ResourceHandler < YARD::Handlers::Ruby::Base
10
10
 
11
11
  if klass
12
12
  begin
13
- klass = klass.split("::").inject(ZendeskAPI) do |p,k|
13
+ klass = klass.split("::").inject(ZendeskAPI) do |p, k|
14
14
  p.const_get(k)
15
15
  end
16
16
  rescue NameError
@@ -61,7 +61,7 @@ class ResourceHandler < YARD::Handlers::Ruby::Base
61
61
  def get_klass(statement)
62
62
  statement.traverse do |node|
63
63
  if node.type == :assoc && node.jump(:kw).source == "class"
64
- classes = node.traverse do |value|
64
+ node.traverse do |value|
65
65
  if value.type == :const_path_ref || value.type == :var_ref
66
66
  return value.source
67
67
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zendesk_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.13.4
4
+ version: 1.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steven Davidovitz
@@ -9,92 +9,8 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-01-19 00:00:00.000000000 Z
12
+ date: 2016-07-11 00:00:00.000000000 Z
13
13
  dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: bump
16
- requirement: !ruby/object:Gem::Requirement
17
- requirements:
18
- - - ">="
19
- - !ruby/object:Gem::Version
20
- version: '0'
21
- type: :development
22
- prerelease: false
23
- version_requirements: !ruby/object:Gem::Requirement
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- version: '0'
28
- - !ruby/object:Gem::Dependency
29
- name: rake
30
- requirement: !ruby/object:Gem::Requirement
31
- requirements:
32
- - - ">="
33
- - !ruby/object:Gem::Version
34
- version: '0'
35
- type: :development
36
- prerelease: false
37
- version_requirements: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - ">="
40
- - !ruby/object:Gem::Version
41
- version: '0'
42
- - !ruby/object:Gem::Dependency
43
- name: rspec
44
- requirement: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - ">="
47
- - !ruby/object:Gem::Version
48
- version: '0'
49
- type: :development
50
- prerelease: false
51
- version_requirements: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - ">="
54
- - !ruby/object:Gem::Version
55
- version: '0'
56
- - !ruby/object:Gem::Dependency
57
- name: vcr
58
- requirement: !ruby/object:Gem::Requirement
59
- requirements:
60
- - - ">="
61
- - !ruby/object:Gem::Version
62
- version: '0'
63
- type: :development
64
- prerelease: false
65
- version_requirements: !ruby/object:Gem::Requirement
66
- requirements:
67
- - - ">="
68
- - !ruby/object:Gem::Version
69
- version: '0'
70
- - !ruby/object:Gem::Dependency
71
- name: webmock
72
- requirement: !ruby/object:Gem::Requirement
73
- requirements:
74
- - - ">="
75
- - !ruby/object:Gem::Version
76
- version: '0'
77
- type: :development
78
- prerelease: false
79
- version_requirements: !ruby/object:Gem::Requirement
80
- requirements:
81
- - - ">="
82
- - !ruby/object:Gem::Version
83
- version: '0'
84
- - !ruby/object:Gem::Dependency
85
- name: yard
86
- requirement: !ruby/object:Gem::Requirement
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- version: '0'
91
- type: :development
92
- prerelease: false
93
- version_requirements: !ruby/object:Gem::Requirement
94
- requirements:
95
- - - ">="
96
- - !ruby/object:Gem::Version
97
- version: '0'
98
14
  - !ruby/object:Gem::Dependency
99
15
  name: faraday
100
16
  requirement: !ruby/object:Gem::Requirement
@@ -167,16 +83,16 @@ dependencies:
167
83
  name: mime-types
168
84
  requirement: !ruby/object:Gem::Requirement
169
85
  requirements:
170
- - - "~>"
86
+ - - ">="
171
87
  - !ruby/object:Gem::Version
172
- version: '2.99'
88
+ version: '0'
173
89
  type: :runtime
174
90
  prerelease: false
175
91
  version_requirements: !ruby/object:Gem::Requirement
176
92
  requirements:
177
- - - "~>"
93
+ - - ">="
178
94
  - !ruby/object:Gem::Version
179
- version: '2.99'
95
+ version: '0'
180
96
  - !ruby/object:Gem::Dependency
181
97
  name: scrub_rb
182
98
  requirement: !ruby/object:Gem::Requirement
@@ -253,7 +169,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
253
169
  version: 1.3.6
254
170
  requirements: []
255
171
  rubyforge_project:
256
- rubygems_version: 2.5.0
172
+ rubygems_version: 2.4.5.1
257
173
  signing_key:
258
174
  specification_version: 4
259
175
  summary: Zendesk REST API Client