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 +3 -1
- data/lib/fuelsdk.rb +3 -0
- data/lib/fuelsdk/objects.rb +79 -18
- data/lib/fuelsdk/soap.rb +13 -2
- data/lib/fuelsdk/version.rb +1 -1
- data/spec/objects_spec.rb +4 -4
- data/spec/soap/get_spec.rb +12 -0
- metadata +2 -2
    
        data/ChangeLog.md
    CHANGED
    
    | @@ -1,9 +1,11 @@ | |
| 1 1 | 
             
            FuelSDK-Ruby
         | 
| 2 2 | 
             
            ============
         | 
| 3 3 |  | 
| 4 | 
            -
            2013- | 
| 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
    
    
    
        data/lib/fuelsdk/objects.rb
    CHANGED
    
    | @@ -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  | 
| 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  | 
| 352 | 
            +
                  object_type.start_with? 'DataExtension'
         | 
| 342 353 | 
             
                end
         | 
| 343 354 |  | 
| 344 355 | 
             
                def format_object_cud_properties object_type, properties
         | 
    
        data/lib/fuelsdk/version.rb
    CHANGED
    
    
    
        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  | 
| 10 | 
            -
                  expect(object.properties).to  | 
| 9 | 
            +
                it 'is nil by default' do
         | 
| 10 | 
            +
                  expect(object.properties).to be_nil
         | 
| 11 11 | 
             
                end
         | 
| 12 12 |  | 
| 13 | 
            -
                it 'returns  | 
| 13 | 
            +
                it 'returns property' do
         | 
| 14 14 | 
             
                  object.properties = {'name' => 'value'}
         | 
| 15 | 
            -
                  expect(object.properties).to eq( | 
| 15 | 
            +
                  expect(object.properties).to eq({'name' => 'value'})
         | 
| 16 16 | 
             
                end
         | 
| 17 17 |  | 
| 18 18 | 
             
                it 'returns array when assigned array' do
         | 
    
        data/spec/soap/get_spec.rb
    CHANGED
    
    | @@ -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 | 
            +
              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- | 
| 13 | 
            +
            date: 2013-10-17 00:00:00.000000000 Z
         | 
| 14 14 | 
             
            dependencies:
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 16 | 
             
              name: bundler
         |