blastramp 0.0.3 → 0.0.4
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/Gemfile.lock +3 -1
 - data/README.md +5 -8
 - data/blastramp.gemspec +1 -0
 - data/lib/blastramp.rb +8 -1
 - data/lib/blastramp/address.rb +41 -0
 - data/lib/blastramp/entity.rb +53 -0
 - data/lib/blastramp/inventory_count_query.rb +2 -1
 - data/lib/blastramp/order.rb +65 -0
 - data/lib/blastramp/order_item.rb +33 -0
 - data/lib/blastramp/order_upload.rb +26 -0
 - data/lib/blastramp/session.rb +6 -2
 - data/lib/blastramp/version.rb +2 -1
 - data/spec/blastramp/address_spec.rb +10 -0
 - data/spec/blastramp/entity_spec.rb +49 -0
 - data/spec/blastramp/order_item_spec.rb +10 -0
 - data/spec/blastramp/order_spec.rb +16 -0
 - data/spec/blastramp/order_upload_spec.rb +25 -0
 - data/spec/fixtures/order_upload/success.xml +15 -0
 - data/spec/spec_helper.rb +5 -0
 - metadata +42 -10
 
    
        data/Gemfile.lock
    CHANGED
    
    | 
         @@ -1,11 +1,12 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            PATH
         
     | 
| 
       2 
2 
     | 
    
         
             
              remote: .
         
     | 
| 
       3 
3 
     | 
    
         
             
              specs:
         
     | 
| 
       4 
     | 
    
         
            -
                blastramp (0.0. 
     | 
| 
      
 4 
     | 
    
         
            +
                blastramp (0.0.3)
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            GEM
         
     | 
| 
       7 
7 
     | 
    
         
             
              remote: http://rubygems.org/
         
     | 
| 
       8 
8 
     | 
    
         
             
              specs:
         
     | 
| 
      
 9 
     | 
    
         
            +
                activesupport (3.0.8)
         
     | 
| 
       9 
10 
     | 
    
         
             
                builder (3.0.0)
         
     | 
| 
       10 
11 
     | 
    
         
             
                crack (0.1.8)
         
     | 
| 
       11 
12 
     | 
    
         
             
                diff-lcs (1.1.2)
         
     | 
| 
         @@ -39,6 +40,7 @@ PLATFORMS 
     | 
|
| 
       39 
40 
     | 
    
         
             
              ruby
         
     | 
| 
       40 
41 
     | 
    
         | 
| 
       41 
42 
     | 
    
         
             
            DEPENDENCIES
         
     | 
| 
      
 43 
     | 
    
         
            +
              activesupport (~> 3.0.3)
         
     | 
| 
       42 
44 
     | 
    
         
             
              blastramp!
         
     | 
| 
       43 
45 
     | 
    
         
             
              mocha (~> 0.9.8)
         
     | 
| 
       44 
46 
     | 
    
         
             
              rspec (~> 2.3.0)
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -22,16 +22,13 @@ Usage example 
     | 
|
| 
       22 
22 
     | 
    
         
             
                inventory_count.total_shipped
         
     | 
| 
       23 
23 
     | 
    
         | 
| 
       24 
24 
     | 
    
         
             
                # Create order:
         
     | 
| 
       25 
     | 
    
         
            -
                order = Blastramp:: 
     | 
| 
       26 
     | 
    
         
            -
                order.session = blastramp
         
     | 
| 
      
 25 
     | 
    
         
            +
                order = Blastramp::Order.new
         
     | 
| 
       27 
26 
     | 
    
         | 
| 
       28 
27 
     | 
    
         
             
                order.order_id = '123'
         
     | 
| 
       29 
28 
     | 
    
         
             
                order.order_date = Time.now.strftime("%m/%d/%Y")
         
     | 
| 
       30 
29 
     | 
    
         
             
                order.start_date = Time.now.strftime("%m/%d/%Y")
         
     | 
| 
       31 
30 
     | 
    
         
             
                order.expiry_date = 1.month.from_now.strftime("%m/%d/%Y")
         
     | 
| 
       32 
     | 
    
         
            -
                order. 
     | 
| 
       33 
     | 
    
         
            -
                order.weight = 1
         
     | 
| 
       34 
     | 
    
         
            -
                order.ship_method = order.shipping_service
         
     | 
| 
      
 31 
     | 
    
         
            +
                order.ship_method = 'UPS Worldwide Standard'
         
     | 
| 
       35 
32 
     | 
    
         
             
                order.warehouse_id = '0001'
         
     | 
| 
       36 
33 
     | 
    
         | 
| 
       37 
34 
     | 
    
         
             
                ship_address = Blastramp::Address.new
         
     | 
| 
         @@ -40,20 +37,20 @@ Usage example 
     | 
|
| 
       40 
37 
     | 
    
         
             
                ship_address.line2 = 'Apt 205'
         
     | 
| 
       41 
38 
     | 
    
         
             
                ship_address.city = 'Springfield'
         
     | 
| 
       42 
39 
     | 
    
         
             
                ship_address.provstate = 'IL'
         
     | 
| 
       43 
     | 
    
         
            -
                ship_address.postalcode = '45678'
         
     | 
| 
       44 
40 
     | 
    
         
             
                ship_address.country = 'USA'
         
     | 
| 
       45 
41 
     | 
    
         
             
                ship_address.phone = '555-555-5555'
         
     | 
| 
       46 
42 
     | 
    
         
             
                order.ship_address = ship_address
         
     | 
| 
      
 43 
     | 
    
         
            +
                order.bill_address = ship_address
         
     | 
| 
       47 
44 
     | 
    
         | 
| 
       48 
45 
     | 
    
         
             
                order_item = Blastramp::OrderItem.new
         
     | 
| 
       49 
46 
     | 
    
         
             
                order_item.order_id = '123'
         
     | 
| 
       50 
47 
     | 
    
         
             
                order_item.sku = 'AAA-01-XX'
         
     | 
| 
       51 
48 
     | 
    
         
             
                order_item.quantity = 2
         
     | 
| 
       52 
49 
     | 
    
         
             
                order_item.item_value = 12.99
         
     | 
| 
       53 
     | 
    
         
            -
                order_item.warehouse_id = '0001'
         
     | 
| 
       54 
50 
     | 
    
         
             
                order.order_items << order_item
         
     | 
| 
       55 
51 
     | 
    
         | 
| 
       56 
     | 
    
         
            -
                order 
     | 
| 
      
 52 
     | 
    
         
            +
                order_upload = Blastramp::OrderUpload.new(blastramp, order)
         
     | 
| 
      
 53 
     | 
    
         
            +
                order_upload.submit
         
     | 
| 
       57 
54 
     | 
    
         | 
| 
       58 
55 
     | 
    
         
             
            Credits
         
     | 
| 
       59 
56 
     | 
    
         
             
            -------
         
     | 
    
        data/blastramp.gemspec
    CHANGED
    
    | 
         @@ -19,6 +19,7 @@ Gem::Specification.new do |s| 
     | 
|
| 
       19 
19 
     | 
    
         
             
              s.executables   = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
         
     | 
| 
       20 
20 
     | 
    
         
             
              s.require_paths = ["lib"]
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
      
 22 
     | 
    
         
            +
              s.add_development_dependency "activesupport", "~> 3.0.3"
         
     | 
| 
       22 
23 
     | 
    
         
             
              s.add_development_dependency "rspec", "~> 2.3.0"
         
     | 
| 
       23 
24 
     | 
    
         
             
              s.add_development_dependency "mocha", "~> 0.9.8"
         
     | 
| 
       24 
25 
     | 
    
         
             
              s.add_development_dependency "savon", "~> 0.8.0.beta.3"
         
     | 
    
        data/lib/blastramp.rb
    CHANGED
    
    | 
         @@ -1,8 +1,15 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
      
 1 
     | 
    
         
            +
            require 'active_support/ordered_hash'
         
     | 
| 
       2 
2 
     | 
    
         
             
            require 'savon'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            $LOAD_PATH << File.expand_path(File.join(*%w[ .. lib ]), File.dirname(__FILE__))
         
     | 
| 
       3 
5 
     | 
    
         
             
            require 'ext'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require 'blastramp/entity'
         
     | 
| 
      
 7 
     | 
    
         
            +
            require 'blastramp/address'
         
     | 
| 
       4 
8 
     | 
    
         
             
            require 'blastramp/inventory_count'
         
     | 
| 
       5 
9 
     | 
    
         
             
            require 'blastramp/inventory_count_query'
         
     | 
| 
      
 10 
     | 
    
         
            +
            require 'blastramp/order'
         
     | 
| 
      
 11 
     | 
    
         
            +
            require 'blastramp/order_item'
         
     | 
| 
      
 12 
     | 
    
         
            +
            require 'blastramp/order_upload'
         
     | 
| 
       6 
13 
     | 
    
         
             
            require 'blastramp/session'
         
     | 
| 
       7 
14 
     | 
    
         | 
| 
       8 
15 
     | 
    
         
             
            module Blastramp
         
     | 
| 
         @@ -0,0 +1,41 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Blastramp
         
     | 
| 
      
 2 
     | 
    
         
            +
              class Address < Entity
         
     | 
| 
      
 3 
     | 
    
         
            +
                has_properties :name, :line1, :line2, :line3, :city, :provstate, :country, :phone, :fax, :email, :web, :contact
         
     | 
| 
      
 4 
     | 
    
         
            +
                
         
     | 
| 
      
 5 
     | 
    
         
            +
                def initialize_defaults
         
     | 
| 
      
 6 
     | 
    
         
            +
                  self.name = '' # Name as it appears on the ship to address label.
         
     | 
| 
      
 7 
     | 
    
         
            +
                  self.line1 = '' # Street information (line 1) to appear on the ship to address label. Max total length of line1, line2 and line3 is 200 character
         
     | 
| 
      
 8 
     | 
    
         
            +
                  self.line2 = ''
         
     | 
| 
      
 9 
     | 
    
         
            +
                  self.line3 = ''
         
     | 
| 
      
 10 
     | 
    
         
            +
                  self.city = '' # City name as on the ship to address label
         
     | 
| 
      
 11 
     | 
    
         
            +
                  self.provstate = '' # Province/State as it appears on the ship to address label
         
     | 
| 
      
 12 
     | 
    
         
            +
                  self.country = 'CA' # Country name as it appears on the ship to address label.
         
     | 
| 
      
 13 
     | 
    
         
            +
                  self.phone = '--' # Phone number (any format). If not known submit "--"
         
     | 
| 
      
 14 
     | 
    
         
            +
                  self.fax = '--' # Fax number (any format). If not known submit "--"
         
     | 
| 
      
 15 
     | 
    
         
            +
                  self.email = '--' # Email address. If not known submit "--"
         
     | 
| 
      
 16 
     | 
    
         
            +
                  self.web = '--' # Web site URL If not known submit "--"
         
     | 
| 
      
 17 
     | 
    
         
            +
                  self.contact = '' # Contact person's full name at the location.
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
      
 19 
     | 
    
         
            +
                
         
     | 
| 
      
 20 
     | 
    
         
            +
                # Returns OrderedHash with the properties of Address in the correct order, camelcased and ready
         
     | 
| 
      
 21 
     | 
    
         
            +
                # to be sent via SOAP
         
     | 
| 
      
 22 
     | 
    
         
            +
                def soap_data
         
     | 
| 
      
 23 
     | 
    
         
            +
                  data = ActiveSupport::OrderedHash.new
         
     | 
| 
      
 24 
     | 
    
         
            +
                  data['name'] = name 
         
     | 
| 
      
 25 
     | 
    
         
            +
                  data['line1'] = line1
         
     | 
| 
      
 26 
     | 
    
         
            +
                  data['line2'] = line2
         
     | 
| 
      
 27 
     | 
    
         
            +
                  data['line3'] = line3
         
     | 
| 
      
 28 
     | 
    
         
            +
                  data['city'] = city
         
     | 
| 
      
 29 
     | 
    
         
            +
                  data['provstate'] = provstate
         
     | 
| 
      
 30 
     | 
    
         
            +
                  data['country'] = country
         
     | 
| 
      
 31 
     | 
    
         
            +
                  data['phone'] = phone
         
     | 
| 
      
 32 
     | 
    
         
            +
                  data['fax'] = fax
         
     | 
| 
      
 33 
     | 
    
         
            +
                  data['email'] = email
         
     | 
| 
      
 34 
     | 
    
         
            +
                  data['web'] = web
         
     | 
| 
      
 35 
     | 
    
         
            +
                  data['contact'] = contact
         
     | 
| 
      
 36 
     | 
    
         
            +
                        
         
     | 
| 
      
 37 
     | 
    
         
            +
                  return data
         
     | 
| 
      
 38 
     | 
    
         
            +
                end
         
     | 
| 
      
 39 
     | 
    
         
            +
                
         
     | 
| 
      
 40 
     | 
    
         
            +
              end
         
     | 
| 
      
 41 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,53 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Blastramp
         
     | 
| 
      
 2 
     | 
    
         
            +
              class Entity
         
     | 
| 
      
 3 
     | 
    
         
            +
                # Internal accessors
         
     | 
| 
      
 4 
     | 
    
         
            +
                attr_accessor :session
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
                class << self
         
     | 
| 
      
 7 
     | 
    
         
            +
                  def has_properties(*properties)
         
     | 
| 
      
 8 
     | 
    
         
            +
                    @properties = properties
         
     | 
| 
      
 9 
     | 
    
         
            +
                    properties.each do |property|
         
     | 
| 
      
 10 
     | 
    
         
            +
                      unless instance_methods.collect(&:to_s).include?(property.to_s)
         
     | 
| 
      
 11 
     | 
    
         
            +
                        # Create property accessors that loads the full Entity from the API if necessary
         
     | 
| 
      
 12 
     | 
    
         
            +
                        define_method "#{property}" do
         
     | 
| 
      
 13 
     | 
    
         
            +
                          instance_variable_get("@#{property}")
         
     | 
| 
      
 14 
     | 
    
         
            +
                        end
         
     | 
| 
      
 15 
     | 
    
         
            +
                      end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                      # Just use regular writers
         
     | 
| 
      
 18 
     | 
    
         
            +
                      attr_writer property
         
     | 
| 
      
 19 
     | 
    
         
            +
                    end
         
     | 
| 
      
 20 
     | 
    
         
            +
                  end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                  def properties
         
     | 
| 
      
 23 
     | 
    
         
            +
                    @properties || []
         
     | 
| 
      
 24 
     | 
    
         
            +
                  end
         
     | 
| 
      
 25 
     | 
    
         
            +
                end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                def initialize(values = {})
         
     | 
| 
      
 28 
     | 
    
         
            +
                  initialize_defaults
         
     | 
| 
      
 29 
     | 
    
         
            +
                  update_properties(values)
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                def initialize_defaults
         
     | 
| 
      
 33 
     | 
    
         
            +
                  nil
         
     | 
| 
      
 34 
     | 
    
         
            +
                end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                def inspect
         
     | 
| 
      
 37 
     | 
    
         
            +
                  props = self.class.properties.collect { |p| "#{p}=#{self.send(p).inspect}" }
         
     | 
| 
      
 38 
     | 
    
         
            +
                  "#<#{self.class}:#{self.object_id}, #{props.join(', ')}>"
         
     | 
| 
      
 39 
     | 
    
         
            +
                end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                # Updates properties of Entity with the values from hash
         
     | 
| 
      
 42 
     | 
    
         
            +
                def update_properties(hash)
         
     | 
| 
      
 43 
     | 
    
         
            +
                  hash.each do |key, value|
         
     | 
| 
      
 44 
     | 
    
         
            +
                    self.send("#{key}=", value)
         
     | 
| 
      
 45 
     | 
    
         
            +
                  end
         
     | 
| 
      
 46 
     | 
    
         
            +
                end
         
     | 
| 
      
 47 
     | 
    
         
            +
              
         
     | 
| 
      
 48 
     | 
    
         
            +
                # Returns OrderedHash with the data structure to send to the API
         
     | 
| 
      
 49 
     | 
    
         
            +
                def soap_data
         
     | 
| 
      
 50 
     | 
    
         
            +
                end
         
     | 
| 
      
 51 
     | 
    
         
            +
                
         
     | 
| 
      
 52 
     | 
    
         
            +
              end
         
     | 
| 
      
 53 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -16,7 +16,8 @@ module Blastramp 
     | 
|
| 
       16 
16 
     | 
    
         | 
| 
       17 
17 
     | 
    
         
             
                def find(sku)
         
     | 
| 
       18 
18 
     | 
    
         
             
                  # Get a list of InventoryCounts from Blastramp
         
     | 
| 
       19 
     | 
    
         
            -
                   
     | 
| 
      
 19 
     | 
    
         
            +
                  endpoint = "http://www.ioperate.net/ws/order/orderws.asmx?wsdl"
         
     | 
| 
      
 20 
     | 
    
         
            +
                  response = session.request endpoint, 'InventoryCountQuery' do
         
     | 
| 
       20 
21 
     | 
    
         
             
                    http.headers["SOAPAction"] = "http://chrome52/webservices/InventoryCountQuery" 
         
     | 
| 
       21 
22 
     | 
    
         | 
| 
       22 
23 
     | 
    
         
             
                    soap.body = {
         
     | 
| 
         @@ -0,0 +1,65 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Blastramp
         
     | 
| 
      
 2 
     | 
    
         
            +
              class Order < Entity
         
     | 
| 
      
 3 
     | 
    
         
            +
                has_properties :order_id, :po, :order_date, :start_date, :expiry_date, :num_of_cartons, :weight, :ship_method, :order_terms, :order_type, :order_currency, :order_tax, :warehouse_currency, :warehouse_id, :note, :season
         
     | 
| 
      
 4 
     | 
    
         
            +
                
         
     | 
| 
      
 5 
     | 
    
         
            +
                # Associations
         
     | 
| 
      
 6 
     | 
    
         
            +
                attr_accessor :order_items, :ship_address, :bill_address
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                def initialize
         
     | 
| 
      
 9 
     | 
    
         
            +
                  super
         
     | 
| 
      
 10 
     | 
    
         
            +
                  @order_items = []
         
     | 
| 
      
 11 
     | 
    
         
            +
                  @ship_address = Blastramp::Address.new
         
     | 
| 
      
 12 
     | 
    
         
            +
                  @bill_address = Blastramp::Address.new
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
                
         
     | 
| 
      
 15 
     | 
    
         
            +
                def initialize_defaults
         
     | 
| 
      
 16 
     | 
    
         
            +
                  self.order_id = 0 # The order number. If it is to be determined by Blastramp then submit "TBD"
         
     | 
| 
      
 17 
     | 
    
         
            +
                  self.po = 0 #  Customer purchase order number
         
     | 
| 
      
 18 
     | 
    
         
            +
                  self.order_date = Time.now.strftime("%m/%d/%Y") # The order date as dd/mm/yyyy
         
     | 
| 
      
 19 
     | 
    
         
            +
                  self.start_date = Time.now.strftime("%m/%d/%Y") # The orders start date as dd/mm/yyyy. The earliest date the order is expected to be released to the warehouse
         
     | 
| 
      
 20 
     | 
    
         
            +
                  self.expiry_date = (Time.now + 186400).strftime("%m/%d/%Y") #  The orders expiry date as dd/mm/yyyy. The latest date the order would be released to the warehouse
         
     | 
| 
      
 21 
     | 
    
         
            +
                  self.num_of_cartons = 0 #N umber of cartons expected in the order. Unknown (and default) is "0"
         
     | 
| 
      
 22 
     | 
    
         
            +
                  self.weight = 0.0 # Estimated weight of the order. Unknown (and default) is "0.0"
         
     | 
| 
      
 23 
     | 
    
         
            +
                  self.ship_method = nil #  Description of the desired shipping method. More detail is better: if known submit carrier, service description and service code. A list of valid values to be used must be provided to Blastramp
         
     | 
| 
      
 24 
     | 
    
         
            +
                  self.order_terms = "Terms Unknown" #  Description of the order terms. Unknown (and default) "Terms Unknown"
         
     | 
| 
      
 25 
     | 
    
         
            +
                  self.order_type = 'P' # P := Pick and Pack. C := Crossdock.
         
     | 
| 
      
 26 
     | 
    
         
            +
                  self.order_currency = 'CAD' #  IATA Currency of the order. Default is "CAD"
         
     | 
| 
      
 27 
     | 
    
         
            +
                  self.order_tax = nil # Tax rate to be applied to the order. Default is the current Canada GST rate.
         
     | 
| 
      
 28 
     | 
    
         
            +
                  self.warehouse_currency = 'CAD' # IATA used by the warehouse DC. Default is "CAD"
         
     | 
| 
      
 29 
     | 
    
         
            +
                  self.warehouse_id = '0001'  # The iOperate identifier for the DC handling the order. Default is "0001"
         
     | 
| 
      
 30 
     | 
    
         
            +
                  self.note = nil #  Other notes or instructions to be attached to the order
         
     | 
| 
      
 31 
     | 
    
         
            +
                  self.season = nil # The season code to which the order would apply. All available code must be provided to Chrome52
         
     | 
| 
      
 32 
     | 
    
         
            +
                end
         
     | 
| 
      
 33 
     | 
    
         
            +
                
         
     | 
| 
      
 34 
     | 
    
         
            +
                # Returns OrderedHash with the properties of CurrentInvoice in the correct order, camelcased and ready
         
     | 
| 
      
 35 
     | 
    
         
            +
                # to be sent via SOAP
         
     | 
| 
      
 36 
     | 
    
         
            +
                def soap_data
         
     | 
| 
      
 37 
     | 
    
         
            +
                  data = ActiveSupport::OrderedHash.new
         
     | 
| 
      
 38 
     | 
    
         
            +
                  data['orderid'] = order_id
         
     | 
| 
      
 39 
     | 
    
         
            +
                  data['po'] = po
         
     | 
| 
      
 40 
     | 
    
         
            +
                  data['orderDate'] = order_date
         
     | 
| 
      
 41 
     | 
    
         
            +
                  data['startDate'] = start_date
         
     | 
| 
      
 42 
     | 
    
         
            +
                  data['expiryDate'] = expiry_date
         
     | 
| 
      
 43 
     | 
    
         
            +
                  data['numOfCartons'] = num_of_cartons
         
     | 
| 
      
 44 
     | 
    
         
            +
                  data['weight'] = weight
         
     | 
| 
      
 45 
     | 
    
         
            +
                  data['shipMethod'] = ship_method
         
     | 
| 
      
 46 
     | 
    
         
            +
                  data['orderTerms'] = order_terms
         
     | 
| 
      
 47 
     | 
    
         
            +
                  data['orderType'] = order_type
         
     | 
| 
      
 48 
     | 
    
         
            +
                  data['orderCurrency'] = order_currency
         
     | 
| 
      
 49 
     | 
    
         
            +
                  data['orderTax'] = order_tax
         
     | 
| 
      
 50 
     | 
    
         
            +
                  data['warehouseCurrency'] = warehouse_currency
         
     | 
| 
      
 51 
     | 
    
         
            +
                  data['warehouseid'] = warehouse_id
         
     | 
| 
      
 52 
     | 
    
         
            +
                  data['note'] = note
         
     | 
| 
      
 53 
     | 
    
         
            +
                  data['season'] = season
         
     | 
| 
      
 54 
     | 
    
         
            +
                  data['shipAddress'] = ship_address.soap_data
         
     | 
| 
      
 55 
     | 
    
         
            +
                  data['billAddress'] = bill_address.soap_data
         
     | 
| 
      
 56 
     | 
    
         
            +
                  data['orderItems'] = []
         
     | 
| 
      
 57 
     | 
    
         
            +
                  order_items.each do |i|
         
     | 
| 
      
 58 
     | 
    
         
            +
                    data['orderItems'] << {'OrderItem' => i.soap_data}
         
     | 
| 
      
 59 
     | 
    
         
            +
                  end
         
     | 
| 
      
 60 
     | 
    
         
            +
                  
         
     | 
| 
      
 61 
     | 
    
         
            +
                  return data
         
     | 
| 
      
 62 
     | 
    
         
            +
                end
         
     | 
| 
      
 63 
     | 
    
         
            +
                
         
     | 
| 
      
 64 
     | 
    
         
            +
              end
         
     | 
| 
      
 65 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,33 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Blastramp
         
     | 
| 
      
 2 
     | 
    
         
            +
              class OrderItem < Entity
         
     | 
| 
      
 3 
     | 
    
         
            +
                has_properties :order_id, :sku, :quantity, :item_value, :line_note, :carton, :warehouse_id, :category_id
         
     | 
| 
      
 4 
     | 
    
         
            +
                
         
     | 
| 
      
 5 
     | 
    
         
            +
                def initialize_defaults
         
     | 
| 
      
 6 
     | 
    
         
            +
                  self.order_id = 0 #  The orderID. Should equal the orderID in the Order
         
     | 
| 
      
 7 
     | 
    
         
            +
                  self.sku = 0 #  The item sku as in the item list as provided to Blastramp
         
     | 
| 
      
 8 
     | 
    
         
            +
                  self.quantity = 0 # Quantity of this item included in the order
         
     | 
| 
      
 9 
     | 
    
         
            +
                  self.item_value = 0.0 # Monetary value of each item in the order currency.
         
     | 
| 
      
 10 
     | 
    
         
            +
                  self.line_note = '' # Other notes or instructions attached to this order item.
         
     | 
| 
      
 11 
     | 
    
         
            +
                  self.carton = '' # Carton identifier for a cross dock order.
         
     | 
| 
      
 12 
     | 
    
         
            +
                  self.warehouse_id = '0001' #  The iOperate identifier for the DC handling the order (should be the same as in the order). Default is "0001"
         
     | 
| 
      
 13 
     | 
    
         
            +
                  self.category_id = '0001' #  The inventory category id to which this product type belongs. Default is "0001"
         
     | 
| 
      
 14 
     | 
    
         
            +
                end
         
     | 
| 
      
 15 
     | 
    
         
            +
                
         
     | 
| 
      
 16 
     | 
    
         
            +
                # Returns OrderedHash with the properties of CurrentInvoice in the correct order, camelcased and ready
         
     | 
| 
      
 17 
     | 
    
         
            +
                # to be sent via SOAP
         
     | 
| 
      
 18 
     | 
    
         
            +
                def soap_data
         
     | 
| 
      
 19 
     | 
    
         
            +
                  data = ActiveSupport::OrderedHash.new
         
     | 
| 
      
 20 
     | 
    
         
            +
                  data['orderid'] = order_id
         
     | 
| 
      
 21 
     | 
    
         
            +
                  data['sku'] = sku
         
     | 
| 
      
 22 
     | 
    
         
            +
                  data['quantity'] = quantity
         
     | 
| 
      
 23 
     | 
    
         
            +
                  data['itemValue'] = item_value
         
     | 
| 
      
 24 
     | 
    
         
            +
                  data['lineNote'] = line_note
         
     | 
| 
      
 25 
     | 
    
         
            +
                  data['carton'] = carton
         
     | 
| 
      
 26 
     | 
    
         
            +
                  data['warehouseid'] = warehouse_id
         
     | 
| 
      
 27 
     | 
    
         
            +
                  data['categoryid'] = category_id
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                  return data
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
                
         
     | 
| 
      
 32 
     | 
    
         
            +
              end
         
     | 
| 
      
 33 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,26 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Blastramp
         
     | 
| 
      
 2 
     | 
    
         
            +
              class OrderUpload
         
     | 
| 
      
 3 
     | 
    
         
            +
                # Associations
         
     | 
| 
      
 4 
     | 
    
         
            +
                attr_reader :session
         
     | 
| 
      
 5 
     | 
    
         
            +
                attr_reader :order
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                def initialize(session, order)
         
     | 
| 
      
 8 
     | 
    
         
            +
                  @session = session
         
     | 
| 
      
 9 
     | 
    
         
            +
                  @order = order
         
     | 
| 
      
 10 
     | 
    
         
            +
                end
         
     | 
| 
      
 11 
     | 
    
         
            +
                
         
     | 
| 
      
 12 
     | 
    
         
            +
                def submit
         
     | 
| 
      
 13 
     | 
    
         
            +
                  # Submit order upload to Blastramp
         
     | 
| 
      
 14 
     | 
    
         
            +
                  endpoint = "http://www.ioperate.net/ws/order/orderws.asmx?wsdl"
         
     | 
| 
      
 15 
     | 
    
         
            +
                  response = session.request endpoint, 'OrderUpload' do
         
     | 
| 
      
 16 
     | 
    
         
            +
                    http.headers["SOAPAction"] = "http://chrome52/webservices/OrderUpload" 
         
     | 
| 
      
 17 
     | 
    
         
            +
                    
         
     | 
| 
      
 18 
     | 
    
         
            +
                    soap.body = {
         
     | 
| 
      
 19 
     | 
    
         
            +
                      'VendorCode' => session.vendor_code,
         
     | 
| 
      
 20 
     | 
    
         
            +
                      'VendorAccessKey' => session.vendor_access_key,
         
     | 
| 
      
 21 
     | 
    
         
            +
                      'Batch' => {:order => order.soap_data}
         
     | 
| 
      
 22 
     | 
    
         
            +
                    }
         
     | 
| 
      
 23 
     | 
    
         
            +
                  end
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
              end
         
     | 
| 
      
 26 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/blastramp/session.rb
    CHANGED
    
    | 
         @@ -1,16 +1,19 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module Blastramp
         
     | 
| 
       2 
2 
     | 
    
         
             
              class Session
         
     | 
| 
       3 
3 
     | 
    
         
             
                attr_accessor :vendor_code, :vendor_access_key
         
     | 
| 
      
 4 
     | 
    
         
            +
                attr_accessor :endpoint
         
     | 
| 
       4 
5 
     | 
    
         | 
| 
       5 
6 
     | 
    
         
             
                def initialize(vendor_code, vendor_access_key)
         
     | 
| 
       6 
7 
     | 
    
         
             
                  self.vendor_code = vendor_code
         
     | 
| 
       7 
8 
     | 
    
         
             
                  self.vendor_access_key = vendor_access_key
         
     | 
| 
      
 9 
     | 
    
         
            +
                  self.endpoint = nil
         
     | 
| 
       8 
10 
     | 
    
         
             
                end
         
     | 
| 
       9 
11 
     | 
    
         | 
| 
       10 
12 
     | 
    
         
             
                # Returns the Savon::Client used to connect to Blastramp
         
     | 
| 
       11 
13 
     | 
    
         
             
                def client      
         
     | 
| 
       12 
14 
     | 
    
         
             
                  @client ||= Savon::Client.new do
         
     | 
| 
       13 
     | 
    
         
            -
                    wsdl.document =  
     | 
| 
      
 15 
     | 
    
         
            +
                    wsdl.document = self.endpoint
         
     | 
| 
      
 16 
     | 
    
         
            +
                    # wsdl.document = "http://www.ioperate.net/ws/inventory/inventoryws.asmx?wsdl"
         
     | 
| 
       14 
17 
     | 
    
         
             
                    # 
         
     | 
| 
       15 
18 
     | 
    
         
             
                    # wsdl.endpoint = "http://www.ioperate.net/ws/inventory/inventoryws.asmx"
         
     | 
| 
       16 
19 
     | 
    
         
             
                    # wsdl.namespace = "http://chrome52/webservices"
         
     | 
| 
         @@ -22,7 +25,8 @@ module Blastramp 
     | 
|
| 
       22 
25 
     | 
    
         
             
                  @inventory_counts ||= InventoryCountQuery.new(self)
         
     | 
| 
       23 
26 
     | 
    
         
             
                end
         
     | 
| 
       24 
27 
     | 
    
         | 
| 
       25 
     | 
    
         
            -
                def request(action, &block)
         
     | 
| 
      
 28 
     | 
    
         
            +
                def request(ep, action, &block)
         
     | 
| 
      
 29 
     | 
    
         
            +
                  self.endpoint = ep
         
     | 
| 
       26 
30 
     | 
    
         
             
                  response = client.request :soap, action, &block
         
     | 
| 
       27 
31 
     | 
    
         
             
                  response_hash = response.to_hash
         
     | 
| 
       28 
32 
     | 
    
         
             
                  action = action.snake_case
         
     | 
    
        data/lib/blastramp/version.rb
    CHANGED
    
    
| 
         @@ -0,0 +1,49 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require './spec/spec_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            class SpecEntity < Blastramp::Entity
         
     | 
| 
      
 4 
     | 
    
         
            +
              has_properties :foo, :baz
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
              def existing_method; end
         
     | 
| 
      
 7 
     | 
    
         
            +
            end
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            describe Blastramp::Entity do
         
     | 
| 
      
 10 
     | 
    
         
            +
              let(:session) { stub_session }
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
              describe "class methods" do
         
     | 
| 
      
 13 
     | 
    
         
            +
                subject { SpecEntity }
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                describe "new" do
         
     | 
| 
      
 16 
     | 
    
         
            +
                  subject { Blastramp::Entity.new }
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                  it "creates a new instance" do
         
     | 
| 
      
 19 
     | 
    
         
            +
                    subject.should be_instance_of(Blastramp::Entity)
         
     | 
| 
      
 20 
     | 
    
         
            +
                  end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                  it "initializes the entity with values from the given hash" do
         
     | 
| 
      
 23 
     | 
    
         
            +
                    entity = SpecEntity.new(:foo => 'bar', :baz => 'qux')
         
     | 
| 
      
 24 
     | 
    
         
            +
                    entity.foo.should == 'bar'
         
     | 
| 
      
 25 
     | 
    
         
            +
                    entity.baz.should == 'qux'
         
     | 
| 
      
 26 
     | 
    
         
            +
                  end
         
     | 
| 
      
 27 
     | 
    
         
            +
                end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                describe "has_properties" do
         
     | 
| 
      
 30 
     | 
    
         
            +
                  it "creates getter for all properties" do
         
     | 
| 
      
 31 
     | 
    
         
            +
                    subject.expects(:define_method).with('name')
         
     | 
| 
      
 32 
     | 
    
         
            +
                    subject.expects(:define_method).with('age')
         
     | 
| 
      
 33 
     | 
    
         
            +
                    subject.has_properties :name, :age
         
     | 
| 
      
 34 
     | 
    
         
            +
                  end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                  it "creates setter for all properties" do
         
     | 
| 
      
 37 
     | 
    
         
            +
                    subject.expects(:attr_writer).with(:name)
         
     | 
| 
      
 38 
     | 
    
         
            +
                    subject.expects(:attr_writer).with(:age)
         
     | 
| 
      
 39 
     | 
    
         
            +
                    subject.has_properties :name, :age
         
     | 
| 
      
 40 
     | 
    
         
            +
                  end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                  it "does not clobber existing methods" do
         
     | 
| 
      
 43 
     | 
    
         
            +
                    subject.expects(:define_method).with('existing_method').never
         
     | 
| 
      
 44 
     | 
    
         
            +
                    subject.has_properties :existing_method
         
     | 
| 
      
 45 
     | 
    
         
            +
                  end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
                end
         
     | 
| 
      
 48 
     | 
    
         
            +
              end
         
     | 
| 
      
 49 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,16 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require './spec/spec_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Blastramp::Order do
         
     | 
| 
      
 4 
     | 
    
         
            +
              subject { Blastramp::Order.new }
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
              it "inherits from Blastramp::Entity" do
         
     | 
| 
      
 7 
     | 
    
         
            +
                Blastramp::Order.ancestors.should include(Blastramp::Entity)
         
     | 
| 
      
 8 
     | 
    
         
            +
              end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
              describe "new" do
         
     | 
| 
      
 11 
     | 
    
         
            +
                it "initializes order_items as an empty array" do
         
     | 
| 
      
 12 
     | 
    
         
            +
                  subject.order_items.should == []
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
              end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,25 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require './spec/spec_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe Blastramp::OrderUpload do
         
     | 
| 
      
 4 
     | 
    
         
            +
              let(:session) { stub_session }
         
     | 
| 
      
 5 
     | 
    
         
            +
              let(:order) { stub_order }
         
     | 
| 
      
 6 
     | 
    
         
            +
              subject { Blastramp::OrderUpload.new(session, order) }
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
              describe "new" do
         
     | 
| 
      
 9 
     | 
    
         
            +
                it "stores session" do
         
     | 
| 
      
 10 
     | 
    
         
            +
                  subject.session.should === session
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
              end
         
     | 
| 
      
 13 
     | 
    
         
            +
              
         
     | 
| 
      
 14 
     | 
    
         
            +
              describe "order_upload" do
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                it "uses OrderUpload on API" do
         
     | 
| 
      
 17 
     | 
    
         
            +
                  savon.expects('OrderUpload').with(
         
     | 
| 
      
 18 
     | 
    
         
            +
                    'VendorCode' => 'ABC', 
         
     | 
| 
      
 19 
     | 
    
         
            +
                    'VendorAccessKey' => 'TWX45IX2R9G35394', 
         
     | 
| 
      
 20 
     | 
    
         
            +
                    'Batch' => {:order => order.soap_data}).returns(:success)
         
     | 
| 
      
 21 
     | 
    
         
            +
                  subject.submit
         
     | 
| 
      
 22 
     | 
    
         
            +
                end    
         
     | 
| 
      
 23 
     | 
    
         
            +
              end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,15 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <?xml version="1.0" encoding="utf-8"?>
         
     | 
| 
      
 2 
     | 
    
         
            +
            <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
         
     | 
| 
      
 3 
     | 
    
         
            +
              <soap:Body>
         
     | 
| 
      
 4 
     | 
    
         
            +
                <OrderUploadResponse xmlns="http://chrome52/webservices/">
         
     | 
| 
      
 5 
     | 
    
         
            +
                  <OrderUploadResult>
         
     | 
| 
      
 6 
     | 
    
         
            +
                    <result>SUCCESS</result>
         
     | 
| 
      
 7 
     | 
    
         
            +
                    <error/>
         
     | 
| 
      
 8 
     | 
    
         
            +
                    <orderids>
         
     | 
| 
      
 9 
     | 
    
         
            +
                      <string>12345</string>
         
     | 
| 
      
 10 
     | 
    
         
            +
                      <string>67890</string>
         
     | 
| 
      
 11 
     | 
    
         
            +
                    </orderids>
         
     | 
| 
      
 12 
     | 
    
         
            +
                  </OrderUploadResult>
         
     | 
| 
      
 13 
     | 
    
         
            +
                </OrderUploadResponse>
         
     | 
| 
      
 14 
     | 
    
         
            +
              </soap:Body>
         
     | 
| 
      
 15 
     | 
    
         
            +
            </soap:Envelope>
         
     | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version 
     | 
|
| 
       5 
5 
     | 
    
         
             
              segments: 
         
     | 
| 
       6 
6 
     | 
    
         
             
              - 0
         
     | 
| 
       7 
7 
     | 
    
         
             
              - 0
         
     | 
| 
       8 
     | 
    
         
            -
              -  
     | 
| 
       9 
     | 
    
         
            -
              version: 0.0. 
     | 
| 
      
 8 
     | 
    
         
            +
              - 4
         
     | 
| 
      
 9 
     | 
    
         
            +
              version: 0.0.4
         
     | 
| 
       10 
10 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       11 
11 
     | 
    
         
             
            authors: 
         
     | 
| 
       12 
12 
     | 
    
         
             
            - cnantais
         
     | 
| 
         @@ -18,9 +18,24 @@ date: 2011-06-29 00:00:00 -07:00 
     | 
|
| 
       18 
18 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       19 
19 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       20 
20 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
       21 
     | 
    
         
            -
              name:  
     | 
| 
      
 21 
     | 
    
         
            +
              name: activesupport
         
     | 
| 
       22 
22 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       23 
23 
     | 
    
         
             
              requirement: &id001 !ruby/object:Gem::Requirement 
         
     | 
| 
      
 24 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 25 
     | 
    
         
            +
                requirements: 
         
     | 
| 
      
 26 
     | 
    
         
            +
                - - ~>
         
     | 
| 
      
 27 
     | 
    
         
            +
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 28 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 29 
     | 
    
         
            +
                    - 3
         
     | 
| 
      
 30 
     | 
    
         
            +
                    - 0
         
     | 
| 
      
 31 
     | 
    
         
            +
                    - 3
         
     | 
| 
      
 32 
     | 
    
         
            +
                    version: 3.0.3
         
     | 
| 
      
 33 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 34 
     | 
    
         
            +
              version_requirements: *id001
         
     | 
| 
      
 35 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency 
         
     | 
| 
      
 36 
     | 
    
         
            +
              name: rspec
         
     | 
| 
      
 37 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 38 
     | 
    
         
            +
              requirement: &id002 !ruby/object:Gem::Requirement 
         
     | 
| 
       24 
39 
     | 
    
         
             
                none: false
         
     | 
| 
       25 
40 
     | 
    
         
             
                requirements: 
         
     | 
| 
       26 
41 
     | 
    
         
             
                - - ~>
         
     | 
| 
         @@ -31,11 +46,11 @@ dependencies: 
     | 
|
| 
       31 
46 
     | 
    
         
             
                    - 0
         
     | 
| 
       32 
47 
     | 
    
         
             
                    version: 2.3.0
         
     | 
| 
       33 
48 
     | 
    
         
             
              type: :development
         
     | 
| 
       34 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 49 
     | 
    
         
            +
              version_requirements: *id002
         
     | 
| 
       35 
50 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
       36 
51 
     | 
    
         
             
              name: mocha
         
     | 
| 
       37 
52 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       38 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 53 
     | 
    
         
            +
              requirement: &id003 !ruby/object:Gem::Requirement 
         
     | 
| 
       39 
54 
     | 
    
         
             
                none: false
         
     | 
| 
       40 
55 
     | 
    
         
             
                requirements: 
         
     | 
| 
       41 
56 
     | 
    
         
             
                - - ~>
         
     | 
| 
         @@ -46,11 +61,11 @@ dependencies: 
     | 
|
| 
       46 
61 
     | 
    
         
             
                    - 8
         
     | 
| 
       47 
62 
     | 
    
         
             
                    version: 0.9.8
         
     | 
| 
       48 
63 
     | 
    
         
             
              type: :development
         
     | 
| 
       49 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 64 
     | 
    
         
            +
              version_requirements: *id003
         
     | 
| 
       50 
65 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
       51 
66 
     | 
    
         
             
              name: savon
         
     | 
| 
       52 
67 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       53 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 68 
     | 
    
         
            +
              requirement: &id004 !ruby/object:Gem::Requirement 
         
     | 
| 
       54 
69 
     | 
    
         
             
                none: false
         
     | 
| 
       55 
70 
     | 
    
         
             
                requirements: 
         
     | 
| 
       56 
71 
     | 
    
         
             
                - - ~>
         
     | 
| 
         @@ -63,11 +78,11 @@ dependencies: 
     | 
|
| 
       63 
78 
     | 
    
         
             
                    - 3
         
     | 
| 
       64 
79 
     | 
    
         
             
                    version: 0.8.0.beta.3
         
     | 
| 
       65 
80 
     | 
    
         
             
              type: :development
         
     | 
| 
       66 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 81 
     | 
    
         
            +
              version_requirements: *id004
         
     | 
| 
       67 
82 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
       68 
83 
     | 
    
         
             
              name: savon_spec
         
     | 
| 
       69 
84 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       70 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 85 
     | 
    
         
            +
              requirement: &id005 !ruby/object:Gem::Requirement 
         
     | 
| 
       71 
86 
     | 
    
         
             
                none: false
         
     | 
| 
       72 
87 
     | 
    
         
             
                requirements: 
         
     | 
| 
       73 
88 
     | 
    
         
             
                - - ~>
         
     | 
| 
         @@ -78,7 +93,7 @@ dependencies: 
     | 
|
| 
       78 
93 
     | 
    
         
             
                    - 6
         
     | 
| 
       79 
94 
     | 
    
         
             
                    version: 0.1.6
         
     | 
| 
       80 
95 
     | 
    
         
             
              type: :development
         
     | 
| 
       81 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 96 
     | 
    
         
            +
              version_requirements: *id005
         
     | 
| 
       82 
97 
     | 
    
         
             
            description: Blastramp Shipping Services Client Library for polling inventory and submitting shipping orders.
         
     | 
| 
       83 
98 
     | 
    
         
             
            email: 
         
     | 
| 
       84 
99 
     | 
    
         
             
            - cnantais@gmail.com
         
     | 
| 
         @@ -97,14 +112,25 @@ files: 
     | 
|
| 
       97 
112 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       98 
113 
     | 
    
         
             
            - blastramp.gemspec
         
     | 
| 
       99 
114 
     | 
    
         
             
            - lib/blastramp.rb
         
     | 
| 
      
 115 
     | 
    
         
            +
            - lib/blastramp/address.rb
         
     | 
| 
      
 116 
     | 
    
         
            +
            - lib/blastramp/entity.rb
         
     | 
| 
       100 
117 
     | 
    
         
             
            - lib/blastramp/inventory_count.rb
         
     | 
| 
       101 
118 
     | 
    
         
             
            - lib/blastramp/inventory_count_query.rb
         
     | 
| 
      
 119 
     | 
    
         
            +
            - lib/blastramp/order.rb
         
     | 
| 
      
 120 
     | 
    
         
            +
            - lib/blastramp/order_item.rb
         
     | 
| 
      
 121 
     | 
    
         
            +
            - lib/blastramp/order_upload.rb
         
     | 
| 
       102 
122 
     | 
    
         
             
            - lib/blastramp/session.rb
         
     | 
| 
       103 
123 
     | 
    
         
             
            - lib/blastramp/version.rb
         
     | 
| 
       104 
124 
     | 
    
         
             
            - lib/ext.rb
         
     | 
| 
      
 125 
     | 
    
         
            +
            - spec/blastramp/address_spec.rb
         
     | 
| 
      
 126 
     | 
    
         
            +
            - spec/blastramp/entity_spec.rb
         
     | 
| 
       105 
127 
     | 
    
         
             
            - spec/blastramp/inventory_count_query_spec.rb
         
     | 
| 
      
 128 
     | 
    
         
            +
            - spec/blastramp/order_item_spec.rb
         
     | 
| 
      
 129 
     | 
    
         
            +
            - spec/blastramp/order_spec.rb
         
     | 
| 
      
 130 
     | 
    
         
            +
            - spec/blastramp/order_upload_spec.rb
         
     | 
| 
       106 
131 
     | 
    
         
             
            - spec/blastramp/session_spec.rb
         
     | 
| 
       107 
132 
     | 
    
         
             
            - spec/fixtures/inventory_count_query/many.xml
         
     | 
| 
      
 133 
     | 
    
         
            +
            - spec/fixtures/order_upload/success.xml
         
     | 
| 
       108 
134 
     | 
    
         
             
            - spec/fixtures/wsdl.xml
         
     | 
| 
       109 
135 
     | 
    
         
             
            - spec/spec_helper.rb
         
     | 
| 
       110 
136 
     | 
    
         
             
            has_rdoc: true
         
     | 
| 
         @@ -140,8 +166,14 @@ signing_key: 
     | 
|
| 
       140 
166 
     | 
    
         
             
            specification_version: 3
         
     | 
| 
       141 
167 
     | 
    
         
             
            summary: Blastramp Shipping Services Client Library
         
     | 
| 
       142 
168 
     | 
    
         
             
            test_files: 
         
     | 
| 
      
 169 
     | 
    
         
            +
            - spec/blastramp/address_spec.rb
         
     | 
| 
      
 170 
     | 
    
         
            +
            - spec/blastramp/entity_spec.rb
         
     | 
| 
       143 
171 
     | 
    
         
             
            - spec/blastramp/inventory_count_query_spec.rb
         
     | 
| 
      
 172 
     | 
    
         
            +
            - spec/blastramp/order_item_spec.rb
         
     | 
| 
      
 173 
     | 
    
         
            +
            - spec/blastramp/order_spec.rb
         
     | 
| 
      
 174 
     | 
    
         
            +
            - spec/blastramp/order_upload_spec.rb
         
     | 
| 
       144 
175 
     | 
    
         
             
            - spec/blastramp/session_spec.rb
         
     | 
| 
       145 
176 
     | 
    
         
             
            - spec/fixtures/inventory_count_query/many.xml
         
     | 
| 
      
 177 
     | 
    
         
            +
            - spec/fixtures/order_upload/success.xml
         
     | 
| 
       146 
178 
     | 
    
         
             
            - spec/fixtures/wsdl.xml
         
     | 
| 
       147 
179 
     | 
    
         
             
            - spec/spec_helper.rb
         
     |