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
|