zendesk_api 1.13.4 → 1.14.0

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: 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