zendesk_api 1.4.4 → 1.4.5

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: 04ffe4c8d58e8f4e587f813afee1b867cc8e15a6
4
- data.tar.gz: 12bee85ee43c5d1af6fda0a4f069c6f2cfe57334
3
+ metadata.gz: a7021e19badde0fd416969c1bc4be207caaf5834
4
+ data.tar.gz: ea01dab8e9c693b241f54f5041d2c7ce99f9a8a9
5
5
  SHA512:
6
- metadata.gz: 03cea5cefaecc99504fdf12040b4dc1fc7b1bb12465d2804aec05f794da7c12b0148b196affcdedc3a77b07d97034e24983a0e4d958a716d07673132e78295dd
7
- data.tar.gz: 0fd99e6c20b86d84b5703282fdb2d9d09a5d4a41d62fbda52b7ccb5b43d038d59b3eefdec02ae7a1d6e14a1fd48940cb135578479f0d15c1c0a0d9965de73203
6
+ metadata.gz: 6d873f7e34fded76987026be01fa1150d04985928c1a56a349f8e58aabe3fcbc00af0d1e5cafdaaa7bad4833bc60775b26d3d5892559377b0c30633353478397
7
+ data.tar.gz: a1237c1049bcafe8331e6ed6e2e1c7eeeaf88c6ce59e548e874035dd2ff72e823c0f89e3534a01f164a8d83971d1a09ec198af63a4159b914fd71745ffbe732b
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- zendesk_api (1.4.4)
4
+ zendesk_api (1.4.5)
5
5
  faraday (~> 0.9)
6
6
  hashie (>= 1.2, < 4.0)
7
7
  inflection
@@ -4,6 +4,31 @@ module ZendeskAPI
4
4
  # Represents an association between two resources
5
5
  # @private
6
6
  class Association
7
+ class << self
8
+ def namespaces
9
+ [ZendeskAPI] + ZendeskAPI::DataNamespace.descendants
10
+ end
11
+
12
+ def class_from_namespace(klass_as_string)
13
+ namespaces.each do |ns|
14
+ if module_defines_class?(ns, klass_as_string)
15
+ return ns.const_get(klass_as_string)
16
+ end
17
+ end
18
+
19
+ nil
20
+ end
21
+
22
+ # 1.9+ changed default to search ancestors, added flag to disable behavior.
23
+ def module_defines_class?(mod, klass_as_string)
24
+ if RUBY_VERSION < '1.9'
25
+ mod.const_defined?(klass_as_string)
26
+ else
27
+ mod.const_defined?(klass_as_string, false)
28
+ end
29
+ end
30
+ end
31
+
7
32
  # @return [Hash] Options passed into the association
8
33
  attr_reader :options
9
34
 
@@ -39,10 +64,10 @@ module ZendeskAPI
39
64
  has_parent = namespace.size > 1 || (options[:with_parent] && @options.parent)
40
65
 
41
66
  if has_parent
42
- parent_class = @options.parent ? @options.parent.class : ZendeskAPI.const_get(ZendeskAPI::Helpers.modulize_string(namespace[0]))
67
+ parent_class = @options.parent ? @options.parent.class : Association.class_from_namespace(ZendeskAPI::Helpers.modulize_string(namespace[0]))
43
68
  parent_namespace = build_parent_namespace(parent_class, instance, options, original_options)
44
69
  namespace[1..1] = parent_namespace if parent_namespace
45
- namespace[0] = parent_class.resource_name
70
+ namespace[0] = parent_class.resource_path
46
71
  else
47
72
  namespace[0] = @options.path || @options[:class].resource_path
48
73
  end
@@ -116,8 +116,11 @@ module ZendeskAPI
116
116
  end
117
117
  end
118
118
 
119
- def voice
120
- Delegator.new(self)
119
+ ZendeskAPI::DataNamespace.descendants.each do |namespace|
120
+ delegator = ZendeskAPI::Helpers.snakecase_string(namespace.to_s.split("::").last)
121
+ define_method delegator do |*| # takes arguments, but doesn't do anything with them
122
+ Delegator.new(self)
123
+ end
121
124
  end
122
125
 
123
126
  protected
@@ -171,32 +174,9 @@ module ZendeskAPI
171
174
 
172
175
  private
173
176
 
174
- def class_from_namespace(klass_as_string)
175
- namespaces.each do |ns|
176
- if module_defines_class?(ns, klass_as_string)
177
- return ns.const_get(klass_as_string)
178
- end
179
- end
180
-
181
- nil
182
- end
183
-
184
- # 1.9+ changed default to search ancestors, added flag to disable behavior.
185
- def module_defines_class?(mod, klass_as_string)
186
- if RUBY_VERSION < '1.9'
187
- mod.const_defined?(klass_as_string)
188
- else
189
- mod.const_defined?(klass_as_string, false)
190
- end
191
- end
192
-
193
- def namespaces
194
- [ZendeskAPI] + ZendeskAPI::DataNamespace.descendants
195
- end
196
-
197
177
  def method_as_class(method)
198
178
  klass_as_string = ZendeskAPI::Helpers.modulize_string(Inflection.singular(method.to_s))
199
- class_from_namespace(klass_as_string)
179
+ ZendeskAPI::Association.class_from_namespace(klass_as_string)
200
180
  end
201
181
 
202
182
  def check_url
@@ -1,6 +1,7 @@
1
1
  module ZendeskAPI
2
2
  # @internal The following are redefined later, but needed by some circular resources (e.g. Ticket -> User, User -> Ticket)
3
3
 
4
+
4
5
  class Ticket < Resource; end
5
6
  class Forum < Resource; end
6
7
  class User < Resource; end
@@ -102,21 +103,9 @@ module ZendeskAPI
102
103
  end
103
104
  end
104
105
 
105
- # @internal This isn't a real resource, it is used by ticket and request comments
106
- module CommentMixin
107
- include Save
108
-
109
- def self.included(klass)
110
- klass.has_many :uploads, :class => Attachment, :inline => true
111
- klass.has :author, :class => User
112
- end
113
-
114
- def save
115
- save_associations
116
- true
117
- end
118
-
119
- alias :save! :save
106
+ class MobileDevice < Resource
107
+ # Clears this devices' badge
108
+ put :clear_badge
120
109
  end
121
110
 
122
111
  class Organization < Resource
@@ -302,7 +291,17 @@ module ZendeskAPI
302
291
 
303
292
  class Request < Resource
304
293
  class Comment < DataResource
305
- include CommentMixin
294
+ include Save
295
+
296
+ has_many :uploads, :class => Attachment, :inline => true
297
+ has :author, :class => User
298
+
299
+ def save
300
+ save_associations
301
+ true
302
+ end
303
+
304
+ alias :save! :save
306
305
  end
307
306
 
308
307
  has Comment, :inline => true
@@ -344,7 +343,17 @@ module ZendeskAPI
344
343
  end
345
344
 
346
345
  class Comment < DataResource
347
- include CommentMixin
346
+ include Save
347
+
348
+ has_many :uploads, :class => Attachment, :inline => true
349
+ has :author, :class => User
350
+
351
+ def save
352
+ save_associations
353
+ true
354
+ end
355
+
356
+ alias :save! :save
348
357
  end
349
358
 
350
359
  put :mark_as_spam
@@ -738,4 +747,17 @@ module ZendeskAPI
738
747
  @attributes.replace(response.body) if response.body
739
748
  end
740
749
  end
750
+
751
+ module DynamicContent
752
+ include DataNamespace
753
+
754
+ class Item < ZendeskAPI::Resource
755
+ namespace 'dynamic_content'
756
+
757
+ class Variant < ZendeskAPI::Resource
758
+ end
759
+
760
+ has_many Variant
761
+ end
762
+ end
741
763
  end
@@ -1,3 +1,3 @@
1
1
  module ZendeskAPI
2
- VERSION = "1.4.4"
2
+ VERSION = "1.4.5"
3
3
  end
@@ -180,6 +180,20 @@ describe ZendeskAPI::Association do
180
180
  end
181
181
  end
182
182
 
183
+ context "when parent has a namespace" do
184
+ before(:each) do
185
+ instance.class.namespace 'hello'
186
+ end
187
+
188
+ after(:each) do
189
+ instance.class.namespace nil
190
+ end
191
+
192
+ it "should generate a specific nested resource path" do
193
+ expect(subject.generate_path(child)).to eq("hello/test_resources/1/children/1")
194
+ end
195
+ end
196
+
183
197
  context "with a specified path" do
184
198
  before(:each) { subject.options[:path] = "blergh" }
185
199
 
@@ -98,5 +98,12 @@ module ZendeskAPI
98
98
  end
99
99
  end
100
100
  end
101
+
102
+ def dynamic_content_item
103
+ VCR.use_cassette('valid_brand') do
104
+ @item ||= client.dynamic_content.items.first
105
+ @item ||= client.dynamic_content.items.create!(:name => 'Test Item', :content => 'Testing')
106
+ end
107
+ end
101
108
  end
102
109
  end
@@ -0,0 +1,16 @@
1
+ require 'core/spec_helper'
2
+
3
+ describe ZendeskAPI::DynamicContent::Item, :delete_after do
4
+ def valid_attributes
5
+ {
6
+ :name => "Snowboard Problem",
7
+ :default_locale_id => 1,
8
+ :content => "Snowboard Problem variant"
9
+ }
10
+ end
11
+
12
+ it_should_be_readable :dynamic_content, :items, :create => true
13
+ it_should_be_creatable
14
+ it_should_be_updatable :name
15
+ it_should_be_deletable
16
+ end
@@ -0,0 +1,19 @@
1
+ require 'core/spec_helper'
2
+
3
+ describe ZendeskAPI::DynamicContent::Item::Variant, :delete_after do
4
+ def valid_attributes
5
+ {
6
+ :locale_id => 127,
7
+ :active => true,
8
+ :default => false,
9
+ :content => 'Mon dieu!'
10
+ }
11
+ end
12
+
13
+ under dynamic_content_item do
14
+ it_should_be_readable dynamic_content_item, :variants, :create => true
15
+ it_should_be_creatable
16
+ it_should_be_updatable :content
17
+ it_should_be_deletable
18
+ end
19
+ 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.4.4
4
+ version: 1.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steven Davidovitz
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-10-15 00:00:00.000000000 Z
12
+ date: 2014-10-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bump
@@ -285,6 +285,8 @@ files:
285
285
  - spec/live/category_spec.rb
286
286
  - spec/live/collection_spec.rb
287
287
  - spec/live/custom_role_spec.rb
288
+ - spec/live/dynamic_content/item_spec.rb
289
+ - spec/live/dynamic_content/variant_spec.rb
288
290
  - spec/live/forum_spec.rb
289
291
  - spec/live/forum_subscription_spec.rb
290
292
  - spec/live/group_membership_spec.rb
@@ -292,7 +294,6 @@ files:
292
294
  - spec/live/identity_spec.rb
293
295
  - spec/live/locale_spec.rb
294
296
  - spec/live/macro_spec.rb
295
- - spec/live/mobile_device_spec.rb
296
297
  - spec/live/organization_field_spec.rb
297
298
  - spec/live/organization_spec.rb
298
299
  - spec/live/request_spec.rb
@@ -397,6 +398,8 @@ test_files:
397
398
  - spec/live/category_spec.rb
398
399
  - spec/live/collection_spec.rb
399
400
  - spec/live/custom_role_spec.rb
401
+ - spec/live/dynamic_content/item_spec.rb
402
+ - spec/live/dynamic_content/variant_spec.rb
400
403
  - spec/live/forum_spec.rb
401
404
  - spec/live/forum_subscription_spec.rb
402
405
  - spec/live/group_membership_spec.rb
@@ -404,7 +407,6 @@ test_files:
404
407
  - spec/live/identity_spec.rb
405
408
  - spec/live/locale_spec.rb
406
409
  - spec/live/macro_spec.rb
407
- - spec/live/mobile_device_spec.rb
408
410
  - spec/live/organization_field_spec.rb
409
411
  - spec/live/organization_spec.rb
410
412
  - spec/live/request_spec.rb
@@ -1,11 +0,0 @@
1
- require 'core/spec_helper'
2
-
3
- describe ZendeskAPI::MobileDevice do
4
- def valid_attributes
5
- { :device_type => "iPhone", :token => "5D41402ABC4B2A76B9719D911017C592" }
6
- end
7
-
8
- it_should_be_creatable
9
- it_should_be_deletable
10
- it_should_be_readable :mobile_devices, :create => true
11
- end