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