zendesk_api 1.1.3 → 1.2.1

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