fuelsdk 0.1.4 → 0.1.5

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.
data/ChangeLog.md CHANGED
@@ -1,9 +1,11 @@
1
1
  FuelSDK-Ruby
2
2
  ============
3
3
 
4
- 2013-09-19: Version 0.1.4
4
+ 2013-10-17: Version 0.1.5
5
5
  ```
6
6
  moved dataextension property munging into client so not required to instantiate those objects.
7
+
8
+ convert properties to array at last minute. fixes #14
7
9
  ```
8
10
 
9
11
  2013-09-18: Version 0.1.3
data/lib/fuelsdk.rb CHANGED
@@ -33,3 +33,6 @@ ET_UnsubEvent = FuelSDK::UnsubEvent
33
33
  ET_TriggeredSend = FuelSDK::TriggeredSend
34
34
  ET_Campaign = FuelSDK::Campaign
35
35
  ET_Get = FuelSDK::Get
36
+ ET_Post = FuelSDK::Post
37
+ ET_Delete = FuelSDK::Delete
38
+ ET_Patch = FuelSDK::Patch
@@ -4,7 +4,7 @@ module FuelSDK
4
4
  module Read
5
5
  attr_accessor :filter
6
6
  def get _id=nil
7
- client.soap_get _id||id, properties, filter
7
+ client.soap_get _id||id, Array.wrap(properties), filter
8
8
  end
9
9
 
10
10
  def info
@@ -14,15 +14,15 @@ module FuelSDK
14
14
 
15
15
  module CUD #create, update, delete
16
16
  def post
17
- client.soap_post id, properties
17
+ client.soap_post id, Array.wrap(properties)
18
18
  end
19
19
 
20
20
  def patch
21
- client.soap_patch id, properties
21
+ client.soap_patch id, Array.wrap(properties)
22
22
  end
23
23
 
24
24
  def delete
25
- client.soap_delete id, properties
25
+ client.soap_delete id, Array.wrap(properties)
26
26
  end
27
27
  end
28
28
  end
@@ -30,21 +30,21 @@ module FuelSDK
30
30
  module Rest
31
31
  module Read
32
32
  def get
33
- client.rest_get id, properties
33
+ client.rest_get id, Array.wrap(properties)
34
34
  end
35
35
  end
36
36
 
37
37
  module CUD
38
38
  def post
39
- client.rest_post id, properties
39
+ client.rest_post id, Array.wrap(properties)
40
40
  end
41
41
 
42
42
  def patch
43
- client.rest_patch id, properties
43
+ client.rest_patch id, Array.wrap(properties)
44
44
  end
45
45
 
46
46
  def delete
47
- client.rest_delete id, properties
47
+ client.rest_delete id, Array.wrap(properties)
48
48
  end
49
49
  end
50
50
  end
@@ -56,11 +56,6 @@ module FuelSDK
56
56
  alias props= properties= # backward compatibility
57
57
  alias authStub= client= # backward compatibility
58
58
 
59
- def properties
60
- @properties = [@properties].compact unless @properties.kind_of? Array
61
- @properties
62
- end
63
-
64
59
  def id
65
60
  self.class.id
66
61
  end
@@ -167,10 +162,6 @@ module FuelSDK
167
162
  'DataExtensionField'
168
163
  end
169
164
  def get
170
- if filter and filter.kind_of? Hash and \
171
- filter.include? 'Property' and filter['Property'] == 'CustomerKey'
172
- filter['Property'] = 'DataExtension.CustomerKey'
173
- end
174
165
  super
175
166
  end
176
167
  end
@@ -264,7 +255,7 @@ module FuelSDK
264
255
  raise 'Unable to handle muliple DataExtension definitions and a field definition'
265
256
  end
266
257
 
267
- d.each do |de|
258
+ Array.wrap(d).each do |de|
268
259
 
269
260
  if (explicit_fields(de) and (de['columns'] || de['fields'] || has_fields)) or
270
261
  (de['columns'] and (de['fields'] || has_fields)) or
@@ -345,4 +336,74 @@ module FuelSDK
345
336
  end
346
337
  end
347
338
  end
339
+
340
+ class Post < Objects::Base
341
+ include Objects::Soap::CUD
342
+ attr_accessor :id
343
+
344
+ def initialize client, id, properties
345
+ self.properties = properties
346
+ self.client = client
347
+ self.id = id
348
+ end
349
+
350
+ def post
351
+ super
352
+ end
353
+
354
+ class << self
355
+ def new client, id, properties=nil
356
+ o = self.allocate
357
+ o.send :initialize, client, id, properties
358
+ return o.post
359
+ end
360
+ end
361
+ end
362
+
363
+ class Delete < Objects::Base
364
+ include Objects::Soap::CUD
365
+ attr_accessor :id
366
+
367
+ def initialize client, id, properties
368
+ self.properties = properties
369
+ self.client = client
370
+ self.id = id
371
+ end
372
+
373
+ def delete
374
+ super
375
+ end
376
+
377
+ class << self
378
+ def new client, id, properties=nil
379
+ o = self.allocate
380
+ o.send :initialize, client, id, properties
381
+ return o.delete
382
+ end
383
+ end
384
+ end
385
+
386
+ class Patch < Objects::Base
387
+ include Objects::Soap::CUD
388
+ attr_accessor :id
389
+
390
+ def initialize client, id, properties
391
+ self.properties = properties
392
+ self.client = client
393
+ self.id = id
394
+ end
395
+
396
+ def patch
397
+ super
398
+ end
399
+
400
+ class << self
401
+ def new client, id, properties=nil
402
+ o = self.allocate
403
+ o.send :initialize, client, id, properties
404
+ return o.patch
405
+ end
406
+ end
407
+ end
408
+
348
409
  end
data/lib/fuelsdk/soap.rb CHANGED
@@ -247,8 +247,19 @@ module FuelSDK
247
247
  }
248
248
  end
249
249
 
250
- def normalize_filter filter
250
+ def normalize_customer_key filter, object_type
251
+ filter.tap do |f|
252
+ if is_a_dataextension? object_type
253
+ if filter['Property'] == 'CustomerKey'
254
+ f['Property'] = 'DataExtension.CustomerKey'
255
+ end
256
+ end
257
+ end
258
+ end
259
+
260
+ def normalize_filter filter, object_type=''
251
261
  if filter and filter.kind_of? Hash
262
+ normalize_customer_key filter, object_type
252
263
  if filter.has_key?('LogicalOperator')
253
264
  add_complex_filter_part filter
254
265
  else
@@ -338,7 +349,7 @@ module FuelSDK
338
349
  end
339
350
 
340
351
  def is_a_dataextension? object_type
341
- object_type == 'DataExtensionObject'
352
+ object_type.start_with? 'DataExtension'
342
353
  end
343
354
 
344
355
  def format_object_cud_properties object_type, properties
@@ -1,3 +1,3 @@
1
1
  module FuelSDK
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
3
3
  end
data/spec/objects_spec.rb CHANGED
@@ -6,13 +6,13 @@ describe FuelSDK::Objects::Base do
6
6
  subject{ object }
7
7
 
8
8
  describe '#properties' do
9
- it 'is empty by default' do
10
- expect(object.properties).to be_empty
9
+ it 'is nil by default' do
10
+ expect(object.properties).to be_nil
11
11
  end
12
12
 
13
- it 'returns item in array when item is not an array' do
13
+ it 'returns property' do
14
14
  object.properties = {'name' => 'value'}
15
- expect(object.properties).to eq([{'name' => 'value'}])
15
+ expect(object.properties).to eq({'name' => 'value'})
16
16
  end
17
17
 
18
18
  it 'returns array when assigned array' do
@@ -254,4 +254,16 @@ describe FuelSDK::Soap do
254
254
  end
255
255
  end
256
256
 
257
+ describe '#normalize_customer_key' do
258
+ it 'changes CustomerKey to DataExtension.CustomerKey' do
259
+ expect(client.normalize_customer_key({'Property' => 'CustomerKey'}, 'DataExtensionField'))
260
+ .to eq({'Property' => 'DataExtension.CustomerKey'})
261
+ end
262
+
263
+ it 'nothing changes if object is not a DataExtension' do
264
+ expect(client.normalize_customer_key({'Property' => 'CustomerKey'}, 'SomethingObject'))
265
+ .to eq({'Property' => 'CustomerKey'})
266
+ end
267
+ end
268
+
257
269
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fuelsdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-09-19 00:00:00.000000000 Z
13
+ date: 2013-10-17 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler