fastspring-saasy 0.3.1 → 0.4.0
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/VERSION +1 -1
- data/fastspring-saasy.gemspec +9 -2
- data/lib/fastspring-saasy.rb +5 -0
- data/lib/fastspring-saasy/address.rb +16 -0
- data/lib/fastspring-saasy/base.rb +58 -0
- data/lib/fastspring-saasy/item.rb +11 -0
- data/lib/fastspring-saasy/order.rb +76 -0
- data/lib/fastspring-saasy/payment.rb +14 -0
- data/lib/fastspring-saasy/subscription.rb +3 -52
- data/spec/fixtures/basic_order.xml +57 -0
- data/spec/order_spec.rb +105 -0
- metadata +20 -13
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.4.0
|
data/fastspring-saasy.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "fastspring-saasy"
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.4.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Richard Patching"]
|
12
|
-
s.date = "2011-11-
|
12
|
+
s.date = "2011-11-12"
|
13
13
|
s.description = "Ruby lib for using the FastSpring (Saas) subscription management API"
|
14
14
|
s.email = "richard@justaddpixels.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -28,12 +28,19 @@ Gem::Specification.new do |s|
|
|
28
28
|
"fastspring-saasy.gemspec",
|
29
29
|
"lib/fastspring-saasy.rb",
|
30
30
|
"lib/fastspring-saasy/account.rb",
|
31
|
+
"lib/fastspring-saasy/address.rb",
|
32
|
+
"lib/fastspring-saasy/base.rb",
|
31
33
|
"lib/fastspring-saasy/customer.rb",
|
32
34
|
"lib/fastspring-saasy/error.rb",
|
35
|
+
"lib/fastspring-saasy/item.rb",
|
36
|
+
"lib/fastspring-saasy/order.rb",
|
37
|
+
"lib/fastspring-saasy/payment.rb",
|
33
38
|
"lib/fastspring-saasy/subscription.rb",
|
34
39
|
"spec/account_spec.rb",
|
35
40
|
"spec/customer_spec.rb",
|
41
|
+
"spec/fixtures/basic_order.xml",
|
36
42
|
"spec/fixtures/basic_subscription.xml",
|
43
|
+
"spec/order_spec.rb",
|
37
44
|
"spec/spec_helper.rb",
|
38
45
|
"spec/subscription_spec.rb"
|
39
46
|
]
|
data/lib/fastspring-saasy.rb
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
require 'httparty'
|
2
2
|
|
3
|
+
require_relative 'fastspring-saasy/base'
|
3
4
|
require_relative 'fastspring-saasy/account'
|
4
5
|
require_relative 'fastspring-saasy/subscription'
|
5
6
|
require_relative 'fastspring-saasy/customer'
|
7
|
+
require_relative 'fastspring-saasy/order'
|
8
|
+
require_relative 'fastspring-saasy/item'
|
9
|
+
require_relative 'fastspring-saasy/payment'
|
10
|
+
require_relative 'fastspring-saasy/address'
|
6
11
|
require_relative 'fastspring-saasy/error'
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module FastSpring
|
2
|
+
class Address
|
3
|
+
attr_reader :address_line_1, :address_line_2, :city, :region,
|
4
|
+
:region_custom, :postal_code, :country
|
5
|
+
|
6
|
+
def initialize(options)
|
7
|
+
@address_line_1 = options.fetch('addressLine1')
|
8
|
+
@address_line_2 = options.fetch('addressLine2')
|
9
|
+
@city = options.fetch('city')
|
10
|
+
@region = options.fetch('region')
|
11
|
+
@region_custom = options.fetch('regionCustom')
|
12
|
+
@postal_code = options.fetch('postalCode')
|
13
|
+
@country = options.fetch('country')
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
module FastSpring
|
2
|
+
class Base
|
3
|
+
include HTTParty
|
4
|
+
base_uri 'https://api.fastspring.com'
|
5
|
+
format :xml
|
6
|
+
#debug_output
|
7
|
+
|
8
|
+
attr_reader :customer
|
9
|
+
|
10
|
+
def initialize(reference)
|
11
|
+
@auth = {:username => FastSpring::Account.fetch(:username),
|
12
|
+
:password => FastSpring::Account.fetch(:password)}
|
13
|
+
@company = FastSpring::Account.fetch(:company)
|
14
|
+
@reference = reference
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.find(reference)
|
18
|
+
self.new(reference).find
|
19
|
+
end
|
20
|
+
|
21
|
+
# Returns the current status
|
22
|
+
def status
|
23
|
+
value_for('status')
|
24
|
+
end
|
25
|
+
|
26
|
+
# When the status was last changed
|
27
|
+
def status_changed
|
28
|
+
DateTime.parse(value_for('statusChanged'))
|
29
|
+
end
|
30
|
+
|
31
|
+
def referrer
|
32
|
+
value_for('referrer')
|
33
|
+
end
|
34
|
+
|
35
|
+
def source_name
|
36
|
+
value_for('sourceName')
|
37
|
+
end
|
38
|
+
|
39
|
+
def source_key
|
40
|
+
value_for('sourceKey')
|
41
|
+
end
|
42
|
+
|
43
|
+
def source_campaign
|
44
|
+
value_for('sourceCampaign')
|
45
|
+
end
|
46
|
+
|
47
|
+
# Returns a customer object
|
48
|
+
def customer
|
49
|
+
@customer ||= Customer.new(value_for('customer'))
|
50
|
+
end
|
51
|
+
|
52
|
+
private
|
53
|
+
def value_for(attribute)
|
54
|
+
parsed_response.fetch(attribute)
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module FastSpring
|
2
|
+
class Item
|
3
|
+
attr_reader :product_display, :product_name, :quantity, :subscription_reference
|
4
|
+
def initialize(details)
|
5
|
+
@product_display = details.fetch('productDisplay')
|
6
|
+
@product_name = details.fetch('productName')
|
7
|
+
@quantity = details.fetch('quantity')
|
8
|
+
@subscription_reference = details.fetch('subscriptionReference')
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
module FastSpring
|
2
|
+
class Order < Base
|
3
|
+
attr_reader :purchaser, :items
|
4
|
+
# Get the order from Saasy
|
5
|
+
def find
|
6
|
+
@response = self.class.get(base_order_path, :basic_auth => @auth)
|
7
|
+
self
|
8
|
+
end
|
9
|
+
|
10
|
+
def base_order_path
|
11
|
+
"/company/#{@company}/order/#{@reference}"
|
12
|
+
end
|
13
|
+
|
14
|
+
def items
|
15
|
+
@items ||= [Item.new(parsed_response['orderItems']['orderItem'])]
|
16
|
+
end
|
17
|
+
|
18
|
+
def payments
|
19
|
+
@payments ||= [Payment.new(parsed_response['payments']['payment'])]
|
20
|
+
end
|
21
|
+
|
22
|
+
def payment
|
23
|
+
payments[0]
|
24
|
+
end
|
25
|
+
|
26
|
+
# Return the order reference
|
27
|
+
def reference
|
28
|
+
value_for('reference')
|
29
|
+
end
|
30
|
+
|
31
|
+
# Was the order a test?
|
32
|
+
def test?
|
33
|
+
value_for('test') == 'true'
|
34
|
+
end
|
35
|
+
|
36
|
+
# Returns a DateTime object
|
37
|
+
def due
|
38
|
+
DateTime.parse(value_for('due'))
|
39
|
+
end
|
40
|
+
|
41
|
+
def currency
|
42
|
+
value_for('currency')
|
43
|
+
end
|
44
|
+
|
45
|
+
def origin_ip
|
46
|
+
value_for('originIp')
|
47
|
+
end
|
48
|
+
|
49
|
+
def purchaser
|
50
|
+
@purchaser ||= Customer.new(value_for('customer'))
|
51
|
+
end
|
52
|
+
|
53
|
+
def total
|
54
|
+
value_for('total').to_f
|
55
|
+
end
|
56
|
+
|
57
|
+
def tax
|
58
|
+
value_for('tax').to_f
|
59
|
+
end
|
60
|
+
|
61
|
+
def shipping
|
62
|
+
value_for('shipping').to_f
|
63
|
+
end
|
64
|
+
|
65
|
+
def address
|
66
|
+
@address ||= Address.new(value_for('address'))
|
67
|
+
end
|
68
|
+
|
69
|
+
private
|
70
|
+
|
71
|
+
def parsed_response
|
72
|
+
@response.parsed_response['order']
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module FastSpring
|
2
|
+
class Payment
|
3
|
+
attr_reader :status, :status_changed, :method_type, :declined_reason,
|
4
|
+
:currency, :total
|
5
|
+
|
6
|
+
def initialize(details)
|
7
|
+
@status = details.fetch('status')
|
8
|
+
@status_changed = Date.parse(details.fetch('statusChanged'))
|
9
|
+
@declined_reason = details.fetch('declinedReason')
|
10
|
+
@currency = details.fetch('currency')
|
11
|
+
@total = details.fetch('total').to_f
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -1,26 +1,12 @@
|
|
1
1
|
require 'date'
|
2
2
|
|
3
3
|
module FastSpring
|
4
|
-
class Subscription
|
5
|
-
include HTTParty
|
6
|
-
base_uri 'https://api.fastspring.com'
|
7
|
-
format :xml
|
8
|
-
#debug_output
|
9
|
-
|
10
|
-
attr_reader :customer
|
4
|
+
class Subscription < Base
|
11
5
|
|
12
6
|
# Get the subscription from Saasy
|
13
|
-
def
|
14
|
-
@auth = {:username => FastSpring::Account.fetch(:username),
|
15
|
-
:password => FastSpring::Account.fetch(:password)}
|
16
|
-
@company = FastSpring::Account.fetch(:company)
|
17
|
-
@reference = reference
|
7
|
+
def find
|
18
8
|
@response = self.class.get(base_subscription_path, :basic_auth => @auth)
|
19
|
-
|
20
|
-
|
21
|
-
# Find a subscription by reference
|
22
|
-
def self.find(reference)
|
23
|
-
self.new(reference)
|
9
|
+
self
|
24
10
|
end
|
25
11
|
|
26
12
|
# Returns the base path for a subscription
|
@@ -28,16 +14,6 @@ module FastSpring
|
|
28
14
|
"/company/#{@company}/subscription/#{@reference}"
|
29
15
|
end
|
30
16
|
|
31
|
-
# Subscription status
|
32
|
-
def status
|
33
|
-
value_for('status')
|
34
|
-
end
|
35
|
-
|
36
|
-
# When the status was last changed
|
37
|
-
def status_changed
|
38
|
-
DateTime.parse(value_for('statusChanged'))
|
39
|
-
end
|
40
|
-
|
41
17
|
# The reason for a status change
|
42
18
|
def status_reason
|
43
19
|
value_for('statusReason')
|
@@ -53,22 +29,6 @@ module FastSpring
|
|
53
29
|
value_for('cancelable') == 'true'
|
54
30
|
end
|
55
31
|
|
56
|
-
def referrer
|
57
|
-
value_for('referrer')
|
58
|
-
end
|
59
|
-
|
60
|
-
def source_name
|
61
|
-
value_for('sourceName')
|
62
|
-
end
|
63
|
-
|
64
|
-
def source_key
|
65
|
-
value_for('sourceKey')
|
66
|
-
end
|
67
|
-
|
68
|
-
def source_campaign
|
69
|
-
value_for('sourceCampaign')
|
70
|
-
end
|
71
|
-
|
72
32
|
# Subscription product name
|
73
33
|
def product_name
|
74
34
|
value_for('productName')
|
@@ -83,11 +43,6 @@ module FastSpring
|
|
83
43
|
Date.parse(value_for('end'))
|
84
44
|
end
|
85
45
|
|
86
|
-
# Returns a customer object
|
87
|
-
def customer
|
88
|
-
@customer ||= Customer.new(value_for('customer'))
|
89
|
-
end
|
90
|
-
|
91
46
|
# Cancel the subscription
|
92
47
|
def destroy
|
93
48
|
self.class.delete(base_subscription_path, :basic_auth => @auth)
|
@@ -108,10 +63,6 @@ module FastSpring
|
|
108
63
|
@response.parsed_response['subscription']
|
109
64
|
end
|
110
65
|
|
111
|
-
def value_for(attribute)
|
112
|
-
parsed_response.fetch(attribute)
|
113
|
-
end
|
114
|
-
|
115
66
|
end
|
116
67
|
end
|
117
68
|
|
@@ -0,0 +1,57 @@
|
|
1
|
+
<order>
|
2
|
+
<reference>TEST-0RD3R</reference>
|
3
|
+
<status>completed</status>
|
4
|
+
<statusChanged>2010-08-15T00:00:00.000Z</statusChanged>
|
5
|
+
<test>false</test>
|
6
|
+
<due>2010-08-15T00:00:00.000Z</due>
|
7
|
+
<currency>GBP</currency>
|
8
|
+
<referrer>acme_web</referrer>
|
9
|
+
<originIp>123.456.789.0</originIp>
|
10
|
+
<total>10.00</total>
|
11
|
+
<tax>1.00</tax>
|
12
|
+
<shipping>0.0</shipping>
|
13
|
+
<sourceName/>
|
14
|
+
<sourceKey/>
|
15
|
+
<sourceCampaign/>
|
16
|
+
<customer>
|
17
|
+
<firstName/>
|
18
|
+
<lastName/>
|
19
|
+
<company/>
|
20
|
+
<email/>
|
21
|
+
<phoneNumber/>
|
22
|
+
</customer>
|
23
|
+
<purchaser>
|
24
|
+
<firstName/>
|
25
|
+
<lastName/>
|
26
|
+
<company/>
|
27
|
+
<email/>
|
28
|
+
<phoneNumber/>
|
29
|
+
</purchaser>
|
30
|
+
<address>
|
31
|
+
<addressLine1/>
|
32
|
+
<addressLine2/>
|
33
|
+
<city/>
|
34
|
+
<region/>
|
35
|
+
<regionCustom/>
|
36
|
+
<postalCode/>
|
37
|
+
<country/>
|
38
|
+
</address>
|
39
|
+
<orderItems>
|
40
|
+
<orderItem>
|
41
|
+
<productDisplay/>
|
42
|
+
<productName/>
|
43
|
+
<quantity>0</quantity>
|
44
|
+
<subscriptionReference/>
|
45
|
+
</orderItem>
|
46
|
+
</orderItems>
|
47
|
+
<payments>
|
48
|
+
<payment>
|
49
|
+
<status>open | request | requested | acceptance | accepted | fulfillment | fulfilled | completion | completed | canceled | failed</status>
|
50
|
+
<statusChanged>2010-08-15T00:00:00.000Z</statusChanged>
|
51
|
+
<methodType>paypal | creditcard | test | check | purchase-order | free</methodType>
|
52
|
+
<declinedReason>internal-error | unsupported-country | expired-card | declined | risk | processor-risk | connection | unknown | cc-address-verification | cc-cvv | voice-auth</declinedReason>
|
53
|
+
<currency/>
|
54
|
+
<total>0.0</total>
|
55
|
+
</payment>
|
56
|
+
</payments>
|
57
|
+
</order>
|
data/spec/order_spec.rb
ADDED
@@ -0,0 +1,105 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '../lib/fastspring-saasy.rb'))
|
2
|
+
require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper.rb'))
|
3
|
+
|
4
|
+
describe FastSpring::Order do
|
5
|
+
before do
|
6
|
+
FastSpring::Account.setup do |config|
|
7
|
+
config[:username] = 'admin'
|
8
|
+
config[:password] = 'test'
|
9
|
+
config[:company] = 'acme'
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
context 'url for orders' do
|
14
|
+
subject { FastSpring::Order.find('test_ref') }
|
15
|
+
before do
|
16
|
+
stub_request(:get, "https://admin:test@api.fastspring.com/company/acme/order/test_ref").
|
17
|
+
to_return(:status => 200, :body => "", :headers => {})
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'returns the path for the company and reference' do
|
21
|
+
subject.base_order_path.should == "/company/acme/order/test_ref"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context 'order details' do
|
26
|
+
subject { FastSpring::Order.find('test_ref') }
|
27
|
+
let(:customer) { mock(:customer) }
|
28
|
+
let(:address) { mock(:address) }
|
29
|
+
let(:item) { mock(:item) }
|
30
|
+
let(:payment) { mock(:payment) }
|
31
|
+
|
32
|
+
before do
|
33
|
+
stub_request(:get, "https://admin:test@api.fastspring.com/company/acme/order/test_ref").
|
34
|
+
to_return(stub_http_response_with('basic_order.xml'))
|
35
|
+
FastSpring::Customer.stub(:new => customer)
|
36
|
+
FastSpring::Address.stub(:new => address)
|
37
|
+
FastSpring::Item.stub(:new => item)
|
38
|
+
FastSpring::Payment.stub(:new => payment)
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'returns the status' do
|
42
|
+
subject.status.should == 'completed'
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'returns when the status was changed' do
|
46
|
+
subject.status_changed.should be_an_instance_of(DateTime)
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'returns the order reference' do
|
50
|
+
subject.reference.should == 'TEST-0RD3R'
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'returns the test status' do
|
54
|
+
subject.test?.should be_false
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'returns the due date' do
|
58
|
+
subject.due.should be_an_instance_of(DateTime)
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'returns the currency code' do
|
62
|
+
subject.currency.should == 'GBP'
|
63
|
+
end
|
64
|
+
|
65
|
+
it 'returns the referrer' do
|
66
|
+
subject.referrer.should == 'acme_web'
|
67
|
+
end
|
68
|
+
|
69
|
+
it 'returns the origin ip' do
|
70
|
+
subject.origin_ip.should == '123.456.789.0'
|
71
|
+
end
|
72
|
+
|
73
|
+
it 'returns the purchaser' do
|
74
|
+
subject.purchaser.should == customer
|
75
|
+
end
|
76
|
+
|
77
|
+
it 'returns the total' do
|
78
|
+
subject.total.should == 10.00
|
79
|
+
end
|
80
|
+
|
81
|
+
it 'returns the tax' do
|
82
|
+
subject.tax.should == 1.00
|
83
|
+
end
|
84
|
+
|
85
|
+
it 'returns the shipping' do
|
86
|
+
subject.shipping.should == 0.0
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'returns the address' do
|
90
|
+
subject.address.should == address
|
91
|
+
end
|
92
|
+
|
93
|
+
context 'items' do
|
94
|
+
it 'has an order item' do
|
95
|
+
subject.items.should == [item]
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
it 'has a payment' do
|
100
|
+
subject.payment.should == payment
|
101
|
+
end
|
102
|
+
|
103
|
+
end
|
104
|
+
|
105
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastspring-saasy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-11-
|
12
|
+
date: 2011-11-12 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httparty
|
16
|
-
requirement: &
|
16
|
+
requirement: &70174611931540 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70174611931540
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rake
|
27
|
-
requirement: &
|
27
|
+
requirement: &70174612187520 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70174612187520
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: bundler
|
38
|
-
requirement: &
|
38
|
+
requirement: &70174612371500 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70174612371500
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: jeweler
|
49
|
-
requirement: &
|
49
|
+
requirement: &70174615205380 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70174615205380
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: httparty
|
60
|
-
requirement: &
|
60
|
+
requirement: &70174615396940 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: 0.8.1
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70174615396940
|
69
69
|
description: Ruby lib for using the FastSpring (Saas) subscription management API
|
70
70
|
email: richard@justaddpixels.com
|
71
71
|
executables: []
|
@@ -85,12 +85,19 @@ files:
|
|
85
85
|
- fastspring-saasy.gemspec
|
86
86
|
- lib/fastspring-saasy.rb
|
87
87
|
- lib/fastspring-saasy/account.rb
|
88
|
+
- lib/fastspring-saasy/address.rb
|
89
|
+
- lib/fastspring-saasy/base.rb
|
88
90
|
- lib/fastspring-saasy/customer.rb
|
89
91
|
- lib/fastspring-saasy/error.rb
|
92
|
+
- lib/fastspring-saasy/item.rb
|
93
|
+
- lib/fastspring-saasy/order.rb
|
94
|
+
- lib/fastspring-saasy/payment.rb
|
90
95
|
- lib/fastspring-saasy/subscription.rb
|
91
96
|
- spec/account_spec.rb
|
92
97
|
- spec/customer_spec.rb
|
98
|
+
- spec/fixtures/basic_order.xml
|
93
99
|
- spec/fixtures/basic_subscription.xml
|
100
|
+
- spec/order_spec.rb
|
94
101
|
- spec/spec_helper.rb
|
95
102
|
- spec/subscription_spec.rb
|
96
103
|
homepage: http://github.com/patchfx/fastspring
|
@@ -108,7 +115,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
108
115
|
version: '0'
|
109
116
|
segments:
|
110
117
|
- 0
|
111
|
-
hash:
|
118
|
+
hash: -4339639904534215693
|
112
119
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
120
|
none: false
|
114
121
|
requirements:
|