zendesk_api 1.1.3 → 1.2.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1a1a622425d0f711b974ea60999f4beb2a4da61f
4
+ data.tar.gz: a669017a02d5a001a05793688e3f56c41c50f375
5
+ SHA512:
6
+ metadata.gz: 78a9c681771ab74a25bbaca94f35e5c8ba527398845f145d09c072bbd1d598cb0cd71c0e1714973d1a9e460bba7534a1e6232436838f88febdad2d3aeddda5ca
7
+ data.tar.gz: 4e1d57b1489b997f61dd5d932552e1e4f8e82703e155d0f9012defe79cc0b3348733220f4a48a6405d9b207413894276c723a0b906ecf1251c66c59279b181af
data/Gemfile.lock CHANGED
@@ -7,12 +7,12 @@ GIT
7
7
  PATH
8
8
  remote: .
9
9
  specs:
10
- zendesk_api (1.1.3)
10
+ zendesk_api (1.2.1)
11
11
  faraday (>= 0.8.0)
12
12
  faraday_middleware (>= 0.8.7)
13
13
  hashie (>= 1.2)
14
14
  inflection
15
- mime-types
15
+ mime-types (~> 1.0)
16
16
  multi_json
17
17
  multipart-post
18
18
 
data/README.md CHANGED
@@ -110,20 +110,20 @@ as #each.
110
110
  ### Caveats
111
111
 
112
112
  Resource updating is implemented by sending only the `changed?` attributes to the server (see `ZendeskAPI::TrackChanges`).
113
- Unfortunately, this module only hooks into `Hash` meaning any changes to an `Array`not resulting in a new instance will not be tracked and sent.
113
+ Unfortunately, this module only hooks into `Hash` meaning any changes to an `Array` not resulting in a new instance will not be tracked and sent.
114
114
 
115
115
  ```
116
116
  zendesk_api_client_rb $ bundle console
117
- > a = ZendeskAPI::Trackie.new(:tags => []).tap(&:clear_changes)
118
- > a.changed?(:tags)
117
+ > a = ZendeskAPI::Trackie.new(:test => []).tap(&:clear_changes)
118
+ > a.changed?(:test)
119
119
  => false
120
- > a.tags << "my_new_tag"
121
- => ["my_new_tag"]
122
- > a.changed?(:tags)
120
+ > a.test << "hello"
121
+ => ["hello"]
122
+ > a.changed?(:test)
123
123
  => false
124
- > a.tags += %w{my_other_tag}
125
- => ["my_new_tag", "my_other_tag"]
126
- > a.changed?(:tags)
124
+ > a.test += %w{hi}
125
+ => ["hello", "hi"]
126
+ > a.changed?(:test)
127
127
  => true
128
128
  ```
129
129
 
@@ -117,10 +117,23 @@ module ZendeskAPI
117
117
  end
118
118
 
119
119
  def build_parent_namespace(parent_class, instance, options, original_options)
120
- return unless association_on_parent = parent_class.associations.detect {|a| a[:class] == @options[:class] }
120
+ path = @options.path
121
+
122
+ association_on_parent = parent_class.associations.detect {|a| a[:name] == @options[:name]}
123
+ association_on_parent ||= parent_class.associations.detect do |a|
124
+ !a[:inline] && a[:class] == @options[:class]
125
+ end
126
+
127
+ if association_on_parent
128
+ path ||= association_on_parent[:path]
129
+ path ||= association_on_parent[:name].to_s
130
+ end
131
+
132
+ path ||= @options[:class].resource_path
133
+
121
134
  [
122
135
  extract_parent_id(parent_class, instance, options, original_options),
123
- @options.path || association_on_parent[:path] || association_on_parent[:name].to_s
136
+ path
124
137
  ]
125
138
  end
126
139
 
@@ -167,7 +167,7 @@ module ZendeskAPI
167
167
  end
168
168
 
169
169
  @response = get_response(@query || self.path)
170
- handle_response(@response.body.dup)
170
+ handle_response(@response.body)
171
171
 
172
172
  @query = nil
173
173
  @resources
@@ -375,7 +375,12 @@ module ZendeskAPI
375
375
  end
376
376
  end
377
377
 
378
- def handle_response(body)
378
+ def handle_response(response_body)
379
+ unless response_body
380
+ raise ZendeskAPI::Error::NetworkError, @response.env
381
+ end
382
+
383
+ body = response_body.dup
379
384
  results = body.delete(@resource_class.model_key) || body.delete("results")
380
385
 
381
386
  @resources = results.map do |res|
@@ -387,10 +392,10 @@ module ZendeskAPI
387
392
  end
388
393
 
389
394
  # Simplified Associations#wrap_resource
390
- def wrap_resource(res, with_association = [Tag, Setting].include?(@resource_class))
395
+ def wrap_resource(res, with_association = with_association?)
391
396
  case res
392
397
  when Array
393
- wrap_resource(Hash[*res])
398
+ wrap_resource(Hash[*res], with_association)
394
399
  when Hash
395
400
  res = res.merge(:association => @association) if with_association
396
401
  @resource_class.new(@client, res)
@@ -401,6 +406,12 @@ module ZendeskAPI
401
406
  end
402
407
  end
403
408
 
409
+ # Two special cases, and all namespaced classes
410
+ def with_association?
411
+ [Tag, Setting].include?(@resource_class) ||
412
+ @resource_class.to_s.split("::").size > 2
413
+ end
414
+
404
415
  ## Method missing
405
416
 
406
417
  def array_method(name, *args, &block)
@@ -1,4 +1,5 @@
1
+ require 'delegate'
2
+
1
3
  module ZendeskAPI
2
4
  class Delegator < SimpleDelegator; end
3
5
  end
4
-
@@ -1,6 +1,8 @@
1
1
  module ZendeskAPI
2
2
  module Error
3
- class ClientError < Faraday::Error::ClientError; end
3
+ class ClientError < Faraday::Error::ClientError
4
+ attr_reader :wrapped_exception
5
+ end
4
6
 
5
7
  class RecordInvalid < ClientError
6
8
  attr_accessor :response, :errors
@@ -8,7 +8,7 @@ module ZendeskAPI
8
8
  def call(env)
9
9
  super
10
10
  rescue Faraday::Error::TimeoutError, Faraday::Error::ConnectionFailed => e
11
- raise Error::NetworkError.new(e)
11
+ raise Error::NetworkError.new(e, env)
12
12
  end
13
13
 
14
14
  def on_complete(env)
@@ -281,13 +281,15 @@ module ZendeskAPI
281
281
  has :author, :class => User
282
282
  end
283
283
 
284
+ put :trust
285
+
284
286
  # need this to support SideLoading
285
287
  has :author, :class => User
286
288
 
287
289
  has_many Event
288
290
  end
289
291
 
290
- class Comment < Data
292
+ class Comment < DataResource
291
293
  include Save
292
294
 
293
295
  has_many :uploads, :class => Attachment, :inline => true
@@ -306,7 +308,7 @@ module ZendeskAPI
306
308
  has :requester, :class => User, :inline => :create
307
309
  has :submitter, :class => User
308
310
  has :assignee, :class => User
309
- has_many :collaborators, :class => User
311
+ has_many :collaborators, :class => User, :inline => true
310
312
  has_many Audit
311
313
  has :metrics, :class => TicketMetric
312
314
  has Group
@@ -314,7 +316,9 @@ module ZendeskAPI
314
316
  has Organization
315
317
  has :related, :class => TicketRelated
316
318
 
317
- has :comment, :class => Comment, :inline => true
319
+ has Comment, :inline => true
320
+ has_many Comment
321
+
318
322
  has :last_comment, :class => Comment, :inline => true
319
323
  has_many :last_comments, :class => Comment, :inline => true
320
324
 
@@ -533,6 +537,40 @@ module ZendeskAPI
533
537
  # post :clone
534
538
  end
535
539
 
540
+ class AppInstallation < Resource
541
+ namespace "apps"
542
+
543
+ def self.singular_resource_name
544
+ "installation"
545
+ end
546
+
547
+ # Don't nest attributes
548
+ def attributes_for_save
549
+ attributes.changes
550
+ end
551
+
552
+ def handle_response
553
+ @attributes.replace(@response.body) if @response.body
554
+ end
555
+ end
556
+
557
+ class AppNotification < CreateResource
558
+ class << self
559
+ def resource_path
560
+ "apps/notify"
561
+ end
562
+ end
563
+
564
+ # Don't nest attributes
565
+ def attributes_for_save
566
+ attributes.changes
567
+ end
568
+
569
+ def handle_response
570
+ @attributes.replace(@response.body) if @response.body
571
+ end
572
+ end
573
+
536
574
  class App < DataResource
537
575
  include Create
538
576
  include Update
@@ -577,23 +615,12 @@ module ZendeskAPI
577
615
  end
578
616
  end
579
617
 
580
- class Installation < Resource
581
- # Don't nest attributes
582
- def attributes_for_save
583
- attributes.changes
584
- end
585
-
586
- def handle_response
587
- @attributes.replace(@response.body) if @response.body
588
- end
589
- end
590
-
591
618
  def self.uploads(client, *args, &block)
592
619
  ZendeskAPI::Collection.new(client, Upload, *args, &block)
593
620
  end
594
621
 
595
622
  def self.installations(client, *args, &block)
596
- ZendeskAPI::Collection.new(client, Installation, *args, &block)
623
+ ZendeskAPI::Collection.new(client, AppInstallation, *args, &block)
597
624
  end
598
625
 
599
626
  has Upload, :path => "uploads"
@@ -29,11 +29,14 @@ module ZendeskAPI
29
29
  return false unless @response.success?
30
30
  return false unless @response.body
31
31
 
32
- resource = @response.body[self.class.singular_resource_name] ||
33
- @response.body.fetch(self.class.resource_name, []).detect {|res| res["id"] == id} ||
34
- {}
32
+ resource = nil
35
33
 
36
- @attributes.replace @attributes.deep_merge(resource)
34
+ if @response.body.is_a?(Hash)
35
+ resource = @response.body[self.class.singular_resource_name]
36
+ resource ||= @response.body.fetch(self.class.resource_name, []).detect {|res| res["id"] == id}
37
+ end
38
+
39
+ @attributes.replace @attributes.deep_merge(resource || {})
37
40
  @attributes.clear_changes
38
41
  clear_associations
39
42
 
@@ -1,3 +1,3 @@
1
1
  module ZendeskAPI
2
- VERSION = "1.1.3"
2
+ VERSION = "1.2.1"
3
3
  end
@@ -155,7 +155,7 @@ describe ZendeskAPI::Association do
155
155
  end
156
156
 
157
157
  context "class with a specified parent" do
158
- subject { described_class.new(:class => ZendeskAPI::TestResource::TestChild, :parent => instance) }
158
+ subject { described_class.new(:class => ZendeskAPI::TestResource::TestChild, :parent => instance, :name => :children) }
159
159
 
160
160
  it "should generate nested resource path" do
161
161
  subject.generate_path.should == "test_resources/1/children"
@@ -198,13 +198,13 @@ describe ZendeskAPI::Association do
198
198
  end
199
199
 
200
200
  it "should generate nested resource path" do
201
- subject.generate_path.should == "test_resources/test_children"
201
+ subject.generate_path.should == "test_resources/1/test_children"
202
202
  end
203
203
  end
204
204
  end
205
205
 
206
206
  context "class with a parent id" do
207
- subject { described_class.new(:class => ZendeskAPI::TestResource::TestChild) }
207
+ subject { described_class.new(:class => ZendeskAPI::TestResource::TestChild, :name => :children) }
208
208
 
209
209
  it "should raise an error if not passed an instance or id" do
210
210
  expect { subject.generate_path }.to raise_error(ArgumentError)
@@ -61,7 +61,7 @@ describe ZendeskAPI::Collection do
61
61
  context "with a class with a parent" do
62
62
  let(:association) do
63
63
  ZendeskAPI::Association.new(:class => ZendeskAPI::TestResource::TestChild,
64
- :parent => ZendeskAPI::TestResource.new(client, :id => 1))
64
+ :parent => ZendeskAPI::TestResource.new(client, :id => 1), :name => :children)
65
65
  end
66
66
 
67
67
  subject do
@@ -363,6 +363,16 @@ describe ZendeskAPI::Collection do
363
363
  end
364
364
  end
365
365
 
366
+ context "with nil body" do
367
+ before(:each) do
368
+ stub_request(:get, %r{test_resources}).to_return(:status => 200)
369
+ end
370
+
371
+ it "should properly be handled" do
372
+ silence_logger { subject.fetch(true).should be_empty }
373
+ end
374
+ end
375
+
366
376
  context "with unfetchable resource" do
367
377
  subject { ZendeskAPI::Collection.new(client, ZendeskAPI::NilResource) }
368
378
 
@@ -1,6 +1,6 @@
1
1
  require 'core/spec_helper'
2
2
 
3
- describe ZendeskAPI::App::Installation do
3
+ describe ZendeskAPI::AppInstallation do
4
4
  it "should work "do
5
5
  upload = VCR.use_cassette("app_installations_upload_create") do
6
6
  ZendeskAPI::App::Upload.new(client, :id => "spec/fixtures/sample_app.zip").tap(&:save!)
@@ -36,7 +36,7 @@ describe ZendeskAPI::App::Installation do
36
36
  }
37
37
  }
38
38
 
39
- install = ZendeskAPI::App::Installation.new(client, attributes)
39
+ install = ZendeskAPI::AppInstallation.new(client, attributes)
40
40
 
41
41
  VCR.use_cassette("app_install_create") { install.save! }
42
42
 
@@ -28,12 +28,12 @@ describe ZendeskAPI::App do
28
28
  end
29
29
 
30
30
  app.id = body["app_id"]
31
- app.short_description = "My Test App"
31
+ app.author_name = "Mr. Sprinkles"
32
+ app.author_email = "sprinkle@example.com"
32
33
 
33
34
  VCR.use_cassette("app_save") { app.save! }
34
35
 
35
- app.short_description.should == "My Test App"
36
- app.author_name.should == "Skip Moore"
36
+ app.author_name.should == "Mr. Sprinkles"
37
37
 
38
38
  VCR.use_cassette("app_destroy") { app.destroy! }
39
39
  end
data/zendesk_api.gemspec CHANGED
@@ -33,7 +33,7 @@ Gem::Specification.new do |s|
33
33
  s.add_runtime_dependency "hashie", ">= 1.2"
34
34
  s.add_runtime_dependency "inflection"
35
35
  s.add_runtime_dependency "multi_json"
36
- s.add_runtime_dependency "mime-types"
36
+ s.add_runtime_dependency "mime-types", "~> 1.0"
37
37
  s.add_runtime_dependency "multipart-post"
38
38
 
39
39
  s.files = `git ls-files -x Gemfile.lock`.split("\n") rescue ''
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zendesk_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
5
- prerelease:
4
+ version: 1.2.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Steven Davidovitz
@@ -10,76 +9,67 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2013-11-11 00:00:00.000000000 Z
12
+ date: 2013-11-25 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: bump
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
- - - ! '>='
18
+ - - '>='
21
19
  - !ruby/object:Gem::Version
22
20
  version: '0'
23
21
  type: :development
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
- - - ! '>='
25
+ - - '>='
29
26
  - !ruby/object:Gem::Version
30
27
  version: '0'
31
28
  - !ruby/object:Gem::Dependency
32
29
  name: rake
33
30
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
31
  requirements:
36
- - - ! '>='
32
+ - - '>='
37
33
  - !ruby/object:Gem::Version
38
34
  version: '0'
39
35
  type: :development
40
36
  prerelease: false
41
37
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
38
  requirements:
44
- - - ! '>='
39
+ - - '>='
45
40
  - !ruby/object:Gem::Version
46
41
  version: '0'
47
42
  - !ruby/object:Gem::Dependency
48
43
  name: rspec
49
44
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
45
  requirements:
52
- - - ! '>='
46
+ - - '>='
53
47
  - !ruby/object:Gem::Version
54
48
  version: '0'
55
49
  type: :development
56
50
  prerelease: false
57
51
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
52
  requirements:
60
- - - ! '>='
53
+ - - '>='
61
54
  - !ruby/object:Gem::Version
62
55
  version: '0'
63
56
  - !ruby/object:Gem::Dependency
64
57
  name: vcr
65
58
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
59
  requirements:
68
- - - ! '>='
60
+ - - '>='
69
61
  - !ruby/object:Gem::Version
70
62
  version: '0'
71
63
  type: :development
72
64
  prerelease: false
73
65
  version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
66
  requirements:
76
- - - ! '>='
67
+ - - '>='
77
68
  - !ruby/object:Gem::Version
78
69
  version: '0'
79
70
  - !ruby/object:Gem::Dependency
80
71
  name: webmock
81
72
  requirement: !ruby/object:Gem::Requirement
82
- none: false
83
73
  requirements:
84
74
  - - ~>
85
75
  - !ruby/object:Gem::Version
@@ -87,7 +77,6 @@ dependencies:
87
77
  type: :development
88
78
  prerelease: false
89
79
  version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
80
  requirements:
92
81
  - - ~>
93
82
  - !ruby/object:Gem::Version
@@ -95,129 +84,113 @@ dependencies:
95
84
  - !ruby/object:Gem::Dependency
96
85
  name: yard
97
86
  requirement: !ruby/object:Gem::Requirement
98
- none: false
99
87
  requirements:
100
- - - ! '>='
88
+ - - '>='
101
89
  - !ruby/object:Gem::Version
102
90
  version: '0'
103
91
  type: :development
104
92
  prerelease: false
105
93
  version_requirements: !ruby/object:Gem::Requirement
106
- none: false
107
94
  requirements:
108
- - - ! '>='
95
+ - - '>='
109
96
  - !ruby/object:Gem::Version
110
97
  version: '0'
111
98
  - !ruby/object:Gem::Dependency
112
99
  name: faraday
113
100
  requirement: !ruby/object:Gem::Requirement
114
- none: false
115
101
  requirements:
116
- - - ! '>='
102
+ - - '>='
117
103
  - !ruby/object:Gem::Version
118
104
  version: 0.8.0
119
105
  type: :runtime
120
106
  prerelease: false
121
107
  version_requirements: !ruby/object:Gem::Requirement
122
- none: false
123
108
  requirements:
124
- - - ! '>='
109
+ - - '>='
125
110
  - !ruby/object:Gem::Version
126
111
  version: 0.8.0
127
112
  - !ruby/object:Gem::Dependency
128
113
  name: faraday_middleware
129
114
  requirement: !ruby/object:Gem::Requirement
130
- none: false
131
115
  requirements:
132
- - - ! '>='
116
+ - - '>='
133
117
  - !ruby/object:Gem::Version
134
118
  version: 0.8.7
135
119
  type: :runtime
136
120
  prerelease: false
137
121
  version_requirements: !ruby/object:Gem::Requirement
138
- none: false
139
122
  requirements:
140
- - - ! '>='
123
+ - - '>='
141
124
  - !ruby/object:Gem::Version
142
125
  version: 0.8.7
143
126
  - !ruby/object:Gem::Dependency
144
127
  name: hashie
145
128
  requirement: !ruby/object:Gem::Requirement
146
- none: false
147
129
  requirements:
148
- - - ! '>='
130
+ - - '>='
149
131
  - !ruby/object:Gem::Version
150
132
  version: '1.2'
151
133
  type: :runtime
152
134
  prerelease: false
153
135
  version_requirements: !ruby/object:Gem::Requirement
154
- none: false
155
136
  requirements:
156
- - - ! '>='
137
+ - - '>='
157
138
  - !ruby/object:Gem::Version
158
139
  version: '1.2'
159
140
  - !ruby/object:Gem::Dependency
160
141
  name: inflection
161
142
  requirement: !ruby/object:Gem::Requirement
162
- none: false
163
143
  requirements:
164
- - - ! '>='
144
+ - - '>='
165
145
  - !ruby/object:Gem::Version
166
146
  version: '0'
167
147
  type: :runtime
168
148
  prerelease: false
169
149
  version_requirements: !ruby/object:Gem::Requirement
170
- none: false
171
150
  requirements:
172
- - - ! '>='
151
+ - - '>='
173
152
  - !ruby/object:Gem::Version
174
153
  version: '0'
175
154
  - !ruby/object:Gem::Dependency
176
155
  name: multi_json
177
156
  requirement: !ruby/object:Gem::Requirement
178
- none: false
179
157
  requirements:
180
- - - ! '>='
158
+ - - '>='
181
159
  - !ruby/object:Gem::Version
182
160
  version: '0'
183
161
  type: :runtime
184
162
  prerelease: false
185
163
  version_requirements: !ruby/object:Gem::Requirement
186
- none: false
187
164
  requirements:
188
- - - ! '>='
165
+ - - '>='
189
166
  - !ruby/object:Gem::Version
190
167
  version: '0'
191
168
  - !ruby/object:Gem::Dependency
192
169
  name: mime-types
193
170
  requirement: !ruby/object:Gem::Requirement
194
- none: false
195
171
  requirements:
196
- - - ! '>='
172
+ - - ~>
197
173
  - !ruby/object:Gem::Version
198
- version: '0'
174
+ version: '1.0'
199
175
  type: :runtime
200
176
  prerelease: false
201
177
  version_requirements: !ruby/object:Gem::Requirement
202
- none: false
203
178
  requirements:
204
- - - ! '>='
179
+ - - ~>
205
180
  - !ruby/object:Gem::Version
206
- version: '0'
181
+ version: '1.0'
207
182
  - !ruby/object:Gem::Dependency
208
183
  name: multipart-post
209
184
  requirement: !ruby/object:Gem::Requirement
210
- none: false
211
185
  requirements:
212
- - - ! '>='
186
+ - - '>='
213
187
  - !ruby/object:Gem::Version
214
188
  version: '0'
215
189
  type: :runtime
216
190
  prerelease: false
217
191
  version_requirements: !ruby/object:Gem::Requirement
218
- none: false
219
192
  requirements:
220
- - - ! '>='
193
+ - - '>='
221
194
  - !ruby/object:Gem::Version
222
195
  version: '0'
223
196
  description: Ruby wrapper for the REST API at http://www.zendesk.com. Documentation
@@ -482,6 +455,7 @@ files:
482
455
  - spec/fixtures/zendesk.rb
483
456
  - spec/live/Readme.md
484
457
  - spec/live/activity_spec.rb
458
+ - spec/live/app_installation_spec.rb
485
459
  - spec/live/app_spec.rb
486
460
  - spec/live/audit_spec.rb
487
461
  - spec/live/automation_spec.rb
@@ -494,7 +468,6 @@ files:
494
468
  - spec/live/group_membership_spec.rb
495
469
  - spec/live/group_spec.rb
496
470
  - spec/live/identity_spec.rb
497
- - spec/live/installation_spec.rb
498
471
  - spec/live/locale_spec.rb
499
472
  - spec/live/macro_spec.rb
500
473
  - spec/live/mobile_device_spec.rb
@@ -531,27 +504,26 @@ files:
531
504
  homepage: http://developer.zendesk.com
532
505
  licenses:
533
506
  - Apache License Version 2.0
507
+ metadata: {}
534
508
  post_install_message:
535
509
  rdoc_options: []
536
510
  require_paths:
537
511
  - lib
538
512
  required_ruby_version: !ruby/object:Gem::Requirement
539
- none: false
540
513
  requirements:
541
- - - ! '>='
514
+ - - '>='
542
515
  - !ruby/object:Gem::Version
543
516
  version: 1.8.7
544
517
  required_rubygems_version: !ruby/object:Gem::Requirement
545
- none: false
546
518
  requirements:
547
- - - ! '>='
519
+ - - '>='
548
520
  - !ruby/object:Gem::Version
549
521
  version: 1.3.6
550
522
  requirements: []
551
523
  rubyforge_project:
552
- rubygems_version: 1.8.25
524
+ rubygems_version: 2.0.3
553
525
  signing_key:
554
- specification_version: 3
526
+ specification_version: 4
555
527
  summary: Zendesk REST API Client
556
528
  test_files:
557
529
  - spec/core/association_spec.rb
@@ -594,6 +566,7 @@ test_files:
594
566
  - spec/fixtures/zendesk.rb
595
567
  - spec/live/Readme.md
596
568
  - spec/live/activity_spec.rb
569
+ - spec/live/app_installation_spec.rb
597
570
  - spec/live/app_spec.rb
598
571
  - spec/live/audit_spec.rb
599
572
  - spec/live/automation_spec.rb
@@ -606,7 +579,6 @@ test_files:
606
579
  - spec/live/group_membership_spec.rb
607
580
  - spec/live/group_spec.rb
608
581
  - spec/live/identity_spec.rb
609
- - spec/live/installation_spec.rb
610
582
  - spec/live/locale_spec.rb
611
583
  - spec/live/macro_spec.rb
612
584
  - spec/live/mobile_device_spec.rb