braintree 1.1.0 → 1.1.1
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/README.rdoc +6 -0
- data/lib/braintree.rb +1 -0
- data/lib/braintree/ssl_expiration_check.rb +3 -3
- data/lib/braintree/subscription.rb +1 -3
- data/lib/braintree/successful_result.rb +1 -1
- data/lib/braintree/test/transaction_amounts.rb +0 -18
- data/lib/braintree/transaction.rb +1 -3
- data/lib/braintree/util.rb +16 -6
- data/lib/braintree/version.rb +1 -1
- data/spec/integration/braintree/subscription_spec.rb +45 -30
- data/spec/unit/braintree/subscription_spec.rb +16 -0
- data/spec/unit/braintree/transaction_spec.rb +11 -0
- data/spec/unit/braintree/util_spec.rb +39 -0
- metadata +3 -2
data/README.rdoc
CHANGED
@@ -57,6 +57,12 @@ Example of using bang method:
|
|
57
57
|
We recommend using the bang methods when you assume that the data is valid and do not expect validations to fail.
|
58
58
|
Otherwise, we recommend using the non-bang methods.
|
59
59
|
|
60
|
+
== Tests
|
61
|
+
|
62
|
+
The unit specs can be run by anyone on any system, but the integration specs are meant to be run against a local development
|
63
|
+
server of our gateway code. These integration specs are not meant for public consumption and will likely fail if run on
|
64
|
+
your system.
|
65
|
+
|
60
66
|
== License
|
61
67
|
|
62
68
|
See the LICENSE file.
|
data/lib/braintree.rb
CHANGED
@@ -18,15 +18,15 @@ module Braintree
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def self.production_expiration_date # :nodoc:
|
21
|
-
Date.
|
21
|
+
Date.civil(2012, 1, 8)
|
22
22
|
end
|
23
23
|
|
24
24
|
def self.sandbox_expiration_date # :nodoc:
|
25
|
-
Date.
|
25
|
+
Date.civil(2010, 12, 1)
|
26
26
|
end
|
27
27
|
|
28
28
|
def self.qa_expiration_date # :nodoc:
|
29
|
-
Date.
|
29
|
+
Date.civil(2010, 12, 1)
|
30
30
|
end
|
31
31
|
end
|
32
32
|
end
|
@@ -94,9 +94,7 @@ module Braintree
|
|
94
94
|
|
95
95
|
def _init(attributes) # :nodoc:
|
96
96
|
set_instance_variables_from_hash(attributes)
|
97
|
-
|
98
|
-
instance_variable_set :@price, BigDecimal.new(self.price)
|
99
|
-
end
|
97
|
+
@price = Util.to_big_decimal(price)
|
100
98
|
end
|
101
99
|
|
102
100
|
def self._update_signature # :nodoc:
|
@@ -27,7 +27,7 @@ module Braintree
|
|
27
27
|
|
28
28
|
def inspect # :nodoc:
|
29
29
|
inspected_attributes = @attrs.map { |attr| "#{attr}:#{send(attr).inspect}" }
|
30
|
-
"#<#{self.class} #{inspected_attributes}>"
|
30
|
+
"#<#{self.class} #{inspected_attributes.join(" ")}>"
|
31
31
|
end
|
32
32
|
|
33
33
|
# Always returns true.
|
@@ -6,23 +6,5 @@ module Braintree
|
|
6
6
|
Authorize = "1000.00"
|
7
7
|
Decline = "2000.00"
|
8
8
|
end
|
9
|
-
|
10
|
-
module Plans
|
11
|
-
TrialPlan = {
|
12
|
-
:description => "Plan for integration tests -- with trial",
|
13
|
-
:id => "integration_trial_plan",
|
14
|
-
:price => "43.21",
|
15
|
-
:trial_period => true,
|
16
|
-
:trial_duration => 2,
|
17
|
-
:trial_duration_unit => Subscription::TrialDurationUnit::Day
|
18
|
-
}
|
19
|
-
|
20
|
-
TriallessPlan = {
|
21
|
-
:description => "Plan for integration tests -- without a trial",
|
22
|
-
:id => "integration_trialless_plan",
|
23
|
-
:price => "12.34",
|
24
|
-
:trial_period => false
|
25
|
-
}
|
26
|
-
end
|
27
9
|
end
|
28
10
|
end
|
@@ -392,9 +392,7 @@ module Braintree
|
|
392
392
|
|
393
393
|
def _init(attributes) # :nodoc:
|
394
394
|
set_instance_variables_from_hash(attributes)
|
395
|
-
|
396
|
-
instance_variable_set :@amount, BigDecimal.new(self.amount)
|
397
|
-
end
|
395
|
+
@amount = Util.to_big_decimal(amount)
|
398
396
|
@credit_card_details = CreditCardDetails.new(@credit_card)
|
399
397
|
@customer_details = CustomerDetails.new(@customer)
|
400
398
|
@billing_details = AddressDetails.new(@billing)
|
data/lib/braintree/util.rb
CHANGED
@@ -29,16 +29,15 @@ module Braintree
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def self.symbolize_keys(hash)
|
32
|
-
hash.
|
33
|
-
hash.delete(key)
|
34
|
-
hash[key.to_sym] = value
|
32
|
+
hash.inject({}) do |new_hash, (key, value)|
|
35
33
|
if value.is_a?(Hash)
|
36
|
-
symbolize_keys(value)
|
34
|
+
value = symbolize_keys(value)
|
37
35
|
elsif value.is_a?(Array) && value.all? { |v| v.is_a?(Hash) }
|
38
|
-
value.
|
36
|
+
value = value.map { |v| symbolize_keys(v) }
|
39
37
|
end
|
38
|
+
|
39
|
+
new_hash.merge(key.to_sym => value)
|
40
40
|
end
|
41
|
-
hash
|
42
41
|
end
|
43
42
|
|
44
43
|
def self.raise_exception_for_status_code(status_code)
|
@@ -58,6 +57,17 @@ module Braintree
|
|
58
57
|
end
|
59
58
|
end
|
60
59
|
|
60
|
+
def self.to_big_decimal(decimal)
|
61
|
+
case decimal
|
62
|
+
when BigDecimal, NilClass
|
63
|
+
decimal
|
64
|
+
when String
|
65
|
+
BigDecimal.new(decimal)
|
66
|
+
else
|
67
|
+
raise ArgumentError, "Argument must be a String or BigDecimal"
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
61
71
|
def self.verify_keys(valid_keys, hash)
|
62
72
|
flattened_valid_keys = _flatten_valid_keys(valid_keys)
|
63
73
|
invalid_keys = _flatten_hash_keys(hash) - flattened_valid_keys
|
data/lib/braintree/version.rb
CHANGED
@@ -1,6 +1,23 @@
|
|
1
1
|
require File.dirname(__FILE__) + "/../spec_helper"
|
2
2
|
|
3
3
|
describe Braintree::Subscription do
|
4
|
+
|
5
|
+
TrialPlan = {
|
6
|
+
:description => "Plan for integration tests -- with trial",
|
7
|
+
:id => "integration_trial_plan",
|
8
|
+
:price => BigDecimal.new("43.21"),
|
9
|
+
:trial_period => true,
|
10
|
+
:trial_duration => 2,
|
11
|
+
:trial_duration_unit => Braintree::Subscription::TrialDurationUnit::Day
|
12
|
+
}
|
13
|
+
|
14
|
+
TriallessPlan = {
|
15
|
+
:description => "Plan for integration tests -- without a trial",
|
16
|
+
:id => "integration_trialless_plan",
|
17
|
+
:price => BigDecimal.new("12.34"),
|
18
|
+
:trial_period => false
|
19
|
+
}
|
20
|
+
|
4
21
|
before(:each) do
|
5
22
|
@credit_card = Braintree::Customer.create!(
|
6
23
|
:credit_card => {
|
@@ -14,7 +31,7 @@ describe Braintree::Subscription do
|
|
14
31
|
it "is successful with a miniumum of params" do
|
15
32
|
result = Braintree::Subscription.create(
|
16
33
|
:payment_method_token => @credit_card.token,
|
17
|
-
:plan_id =>
|
34
|
+
:plan_id => TriallessPlan[:id]
|
18
35
|
)
|
19
36
|
|
20
37
|
date_format = /^\d{4}\D\d{1,2}\D\d{1,2}$/
|
@@ -36,7 +53,7 @@ describe Braintree::Subscription do
|
|
36
53
|
new_id = rand(36**9).to_s(36)
|
37
54
|
result = Braintree::Subscription.create(
|
38
55
|
:payment_method_token => @credit_card.token,
|
39
|
-
:plan_id =>
|
56
|
+
:plan_id => TriallessPlan[:id],
|
40
57
|
:id => new_id
|
41
58
|
)
|
42
59
|
|
@@ -50,7 +67,7 @@ describe Braintree::Subscription do
|
|
50
67
|
it "with no trial" do
|
51
68
|
result = Braintree::Subscription.create(
|
52
69
|
:payment_method_token => @credit_card.token,
|
53
|
-
:plan_id =>
|
70
|
+
:plan_id => TriallessPlan[:id]
|
54
71
|
)
|
55
72
|
|
56
73
|
result.subscription.trial_period.should == false
|
@@ -61,7 +78,7 @@ describe Braintree::Subscription do
|
|
61
78
|
it "with a trial" do
|
62
79
|
result = Braintree::Subscription.create(
|
63
80
|
:payment_method_token => @credit_card.token,
|
64
|
-
:plan_id =>
|
81
|
+
:plan_id => TrialPlan[:id]
|
65
82
|
)
|
66
83
|
|
67
84
|
result.subscription.trial_period.should == true
|
@@ -72,7 +89,7 @@ describe Braintree::Subscription do
|
|
72
89
|
it "can alter the trial period params" do
|
73
90
|
result = Braintree::Subscription.create(
|
74
91
|
:payment_method_token => @credit_card.token,
|
75
|
-
:plan_id =>
|
92
|
+
:plan_id => TrialPlan[:id],
|
76
93
|
:trial_duration => 5,
|
77
94
|
:trial_duration_unit => Braintree::Subscription::TrialDurationUnit::Month
|
78
95
|
)
|
@@ -85,7 +102,7 @@ describe Braintree::Subscription do
|
|
85
102
|
it "can override the trial_period param" do
|
86
103
|
result = Braintree::Subscription.create(
|
87
104
|
:payment_method_token => @credit_card.token,
|
88
|
-
:plan_id =>
|
105
|
+
:plan_id => TrialPlan[:id],
|
89
106
|
:trial_period => false
|
90
107
|
)
|
91
108
|
|
@@ -95,19 +112,19 @@ describe Braintree::Subscription do
|
|
95
112
|
it "creates a transaction if no trial period" do
|
96
113
|
result = Braintree::Subscription.create(
|
97
114
|
:payment_method_token => @credit_card.token,
|
98
|
-
:plan_id =>
|
115
|
+
:plan_id => TriallessPlan[:id]
|
99
116
|
)
|
100
117
|
|
101
118
|
result.subscription.transactions.size.should == 1
|
102
119
|
result.subscription.transactions.first.should be_a(Braintree::Transaction)
|
103
|
-
result.subscription.transactions.first.amount.should ==
|
120
|
+
result.subscription.transactions.first.amount.should == TriallessPlan[:price]
|
104
121
|
result.subscription.transactions.first.type.should == Braintree::Transaction::Type::Sale
|
105
122
|
end
|
106
123
|
|
107
124
|
it "doesn't create a transaction if there's a trial period" do
|
108
125
|
result = Braintree::Subscription.create(
|
109
126
|
:payment_method_token => @credit_card.token,
|
110
|
-
:plan_id =>
|
127
|
+
:plan_id => TrialPlan[:id]
|
111
128
|
)
|
112
129
|
|
113
130
|
result.subscription.transactions.size.should == 0
|
@@ -118,16 +135,16 @@ describe Braintree::Subscription do
|
|
118
135
|
it "defaults to the plan's price" do
|
119
136
|
result = Braintree::Subscription.create(
|
120
137
|
:payment_method_token => @credit_card.token,
|
121
|
-
:plan_id =>
|
138
|
+
:plan_id => TrialPlan[:id]
|
122
139
|
)
|
123
140
|
|
124
|
-
result.subscription.price.should ==
|
141
|
+
result.subscription.price.should == TrialPlan[:price]
|
125
142
|
end
|
126
143
|
|
127
144
|
it "can be overridden" do
|
128
145
|
result = Braintree::Subscription.create(
|
129
146
|
:payment_method_token => @credit_card.token,
|
130
|
-
:plan_id =>
|
147
|
+
:plan_id => TrialPlan[:id],
|
131
148
|
:price => 98.76
|
132
149
|
)
|
133
150
|
|
@@ -140,7 +157,7 @@ describe Braintree::Subscription do
|
|
140
157
|
it "has validation errors on id" do
|
141
158
|
result = Braintree::Subscription.create(
|
142
159
|
:payment_method_token => @credit_card.token,
|
143
|
-
:plan_id =>
|
160
|
+
:plan_id => TrialPlan[:id],
|
144
161
|
:id => "invalid token"
|
145
162
|
)
|
146
163
|
result.success?.should == false
|
@@ -151,14 +168,14 @@ describe Braintree::Subscription do
|
|
151
168
|
duplicate_token = "duplicate_token_#{rand(36**8).to_s(36)}"
|
152
169
|
result = Braintree::Subscription.create(
|
153
170
|
:payment_method_token => @credit_card.token,
|
154
|
-
:plan_id =>
|
171
|
+
:plan_id => TrialPlan[:id],
|
155
172
|
:id => duplicate_token
|
156
173
|
)
|
157
174
|
result.success?.should == true
|
158
175
|
|
159
176
|
result = Braintree::Subscription.create(
|
160
177
|
:payment_method_token => @credit_card.token,
|
161
|
-
:plan_id =>
|
178
|
+
:plan_id => TrialPlan[:id],
|
162
179
|
:id => duplicate_token
|
163
180
|
)
|
164
181
|
result.success?.should == false
|
@@ -168,7 +185,7 @@ describe Braintree::Subscription do
|
|
168
185
|
it "trial duration required" do
|
169
186
|
result = Braintree::Subscription.create(
|
170
187
|
:payment_method_token => @credit_card.token,
|
171
|
-
:plan_id =>
|
188
|
+
:plan_id => TrialPlan[:id],
|
172
189
|
:trial_period => true,
|
173
190
|
:trial_duration => nil
|
174
191
|
)
|
@@ -179,7 +196,7 @@ describe Braintree::Subscription do
|
|
179
196
|
it "trial duration unit required" do
|
180
197
|
result = Braintree::Subscription.create(
|
181
198
|
:payment_method_token => @credit_card.token,
|
182
|
-
:plan_id =>
|
199
|
+
:plan_id => TrialPlan[:id],
|
183
200
|
:trial_period => true,
|
184
201
|
:trial_duration_unit => nil
|
185
202
|
)
|
@@ -194,7 +211,7 @@ describe Braintree::Subscription do
|
|
194
211
|
it "finds a subscription" do
|
195
212
|
result = Braintree::Subscription.create(
|
196
213
|
:payment_method_token => @credit_card.token,
|
197
|
-
:plan_id =>
|
214
|
+
:plan_id => TriallessPlan[:id]
|
198
215
|
)
|
199
216
|
result.success?.should == true
|
200
217
|
|
@@ -213,7 +230,7 @@ describe Braintree::Subscription do
|
|
213
230
|
@subscription = Braintree::Subscription.create(
|
214
231
|
:payment_method_token => @credit_card.token,
|
215
232
|
:price => 54.32,
|
216
|
-
:plan_id =>
|
233
|
+
:plan_id => TriallessPlan[:id]
|
217
234
|
).subscription
|
218
235
|
end
|
219
236
|
|
@@ -223,12 +240,12 @@ describe Braintree::Subscription do
|
|
223
240
|
result = Braintree::Subscription.update(@subscription.id,
|
224
241
|
:id => new_id,
|
225
242
|
:price => 9999.88,
|
226
|
-
:plan_id =>
|
243
|
+
:plan_id => TrialPlan[:id]
|
227
244
|
)
|
228
245
|
|
229
246
|
result.success?.should == true
|
230
247
|
result.subscription.id.should =~ /#{new_id}/
|
231
|
-
result.subscription.plan_id.should ==
|
248
|
+
result.subscription.plan_id.should == TrialPlan[:id]
|
232
249
|
result.subscription.price.should == BigDecimal.new("9999.88")
|
233
250
|
end
|
234
251
|
|
@@ -239,8 +256,7 @@ describe Braintree::Subscription do
|
|
239
256
|
|
240
257
|
result.success?.should == true
|
241
258
|
result.subscription.price.to_f.should == @subscription.price.to_f + 1
|
242
|
-
result.subscription.transactions.size.should ==
|
243
|
-
@subscription.transactions.size + 1
|
259
|
+
result.subscription.transactions.size.should == @subscription.transactions.size + 1
|
244
260
|
end
|
245
261
|
|
246
262
|
it "doesn't prorate if price decreases" do
|
@@ -250,8 +266,7 @@ describe Braintree::Subscription do
|
|
250
266
|
|
251
267
|
result.success?.should == true
|
252
268
|
result.subscription.price.to_f.should == @subscription.price.to_f - 1
|
253
|
-
result.subscription.transactions.size.should ==
|
254
|
-
@subscription.transactions.size
|
269
|
+
result.subscription.transactions.size.should == @subscription.transactions.size
|
255
270
|
end
|
256
271
|
end
|
257
272
|
|
@@ -259,7 +274,7 @@ describe Braintree::Subscription do
|
|
259
274
|
before(:each) do
|
260
275
|
@subscription = Braintree::Subscription.create(
|
261
276
|
:payment_method_token => @credit_card.token,
|
262
|
-
:plan_id =>
|
277
|
+
:plan_id => TrialPlan[:id]
|
263
278
|
).subscription
|
264
279
|
end
|
265
280
|
|
@@ -293,7 +308,7 @@ describe Braintree::Subscription do
|
|
293
308
|
duplicate_id = "new_id_#{rand(36**6).to_s(36)}"
|
294
309
|
duplicate = Braintree::Subscription.create(
|
295
310
|
:payment_method_token => @credit_card.token,
|
296
|
-
:plan_id =>
|
311
|
+
:plan_id => TrialPlan[:id],
|
297
312
|
:id => duplicate_id
|
298
313
|
)
|
299
314
|
result = Braintree::Subscription.update(
|
@@ -308,7 +323,7 @@ describe Braintree::Subscription do
|
|
308
323
|
subscription = Braintree::Subscription.create(
|
309
324
|
:payment_method_token => @credit_card.token,
|
310
325
|
:price => 54.32,
|
311
|
-
:plan_id =>
|
326
|
+
:plan_id => TriallessPlan[:id]
|
312
327
|
).subscription
|
313
328
|
|
314
329
|
result = Braintree::Subscription.cancel(subscription.id)
|
@@ -329,7 +344,7 @@ describe Braintree::Subscription do
|
|
329
344
|
subscription = Braintree::Subscription.create(
|
330
345
|
:payment_method_token => @credit_card.token,
|
331
346
|
:price => 54.32,
|
332
|
-
:plan_id =>
|
347
|
+
:plan_id => TriallessPlan[:id]
|
333
348
|
).subscription
|
334
349
|
|
335
350
|
result = Braintree::Subscription.cancel(subscription.id)
|
@@ -347,7 +362,7 @@ describe Braintree::Subscription do
|
|
347
362
|
subscription = Braintree::Subscription.create(
|
348
363
|
:payment_method_token => @credit_card.token,
|
349
364
|
:price => 54.32,
|
350
|
-
:plan_id =>
|
365
|
+
:plan_id => TriallessPlan[:id]
|
351
366
|
).subscription
|
352
367
|
|
353
368
|
result = Braintree::Subscription.cancel(subscription.id)
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../spec_helper"
|
2
|
+
|
3
|
+
describe Braintree::Subscription do
|
4
|
+
context "price" do
|
5
|
+
it "accepts price as either a String or a BigDecimal" do
|
6
|
+
Braintree::Subscription.new(:price => "12.34", :transactions => []).price.should == BigDecimal.new("12.34")
|
7
|
+
Braintree::Subscription.new(:price => BigDecimal.new("12.34"), :transactions => []).price.should == BigDecimal.new("12.34")
|
8
|
+
end
|
9
|
+
|
10
|
+
it "blows up if price is not a string or BigDecimal" do
|
11
|
+
expect {
|
12
|
+
Braintree::Subscription.new(:price => 12.34, :transactions => [])
|
13
|
+
}.to raise_error(/Argument must be a String or BigDecimal/)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -99,6 +99,17 @@ describe Braintree::Transaction do
|
|
99
99
|
:custom => "\n "
|
100
100
|
)
|
101
101
|
end
|
102
|
+
|
103
|
+
it "accepts amount as either a String or a BigDecimal" do
|
104
|
+
Braintree::Transaction._new(:amount => "12.34").amount.should == BigDecimal.new("12.34")
|
105
|
+
Braintree::Transaction._new(:amount => BigDecimal.new("12.34")).amount.should == BigDecimal.new("12.34")
|
106
|
+
end
|
107
|
+
|
108
|
+
it "blows up if amount is not a string or BigDecimal" do
|
109
|
+
expect {
|
110
|
+
Braintree::Transaction._new(:amount => 12.34)
|
111
|
+
}.to raise_error(/Argument must be a String or BigDecimal/)
|
112
|
+
end
|
102
113
|
end
|
103
114
|
|
104
115
|
describe "inspect" do
|
@@ -1,6 +1,26 @@
|
|
1
1
|
require File.dirname(__FILE__) + "/../spec_helper"
|
2
2
|
|
3
3
|
describe Braintree::Util do
|
4
|
+
describe "self.symbolize_keys" do
|
5
|
+
it "does not modify the hash" do
|
6
|
+
original = {"a" => "b", "c" => "d"}
|
7
|
+
new = Braintree::Util.symbolize_keys(original)
|
8
|
+
|
9
|
+
original["a"].should == "b"
|
10
|
+
new[:a].should == "b"
|
11
|
+
end
|
12
|
+
|
13
|
+
it "symbolizes nested keys" do
|
14
|
+
hash = {"a" => {"b" => {"c" => "d" }}}
|
15
|
+
Braintree::Util.symbolize_keys(hash).should == {:a => {:b => {:c => "d"}}}
|
16
|
+
end
|
17
|
+
|
18
|
+
it "symbolizes nested keys in arrays" do
|
19
|
+
hash = {"a" => ["b" => {"c" => "d" }]}
|
20
|
+
Braintree::Util.symbolize_keys(hash).should == {:a => [:b => {:c => "d"}]}
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
4
24
|
describe "self.verify_keys" do
|
5
25
|
it "raises an exception if the hash contains an invalid key" do
|
6
26
|
expect do
|
@@ -170,6 +190,25 @@ describe Braintree::Util do
|
|
170
190
|
end
|
171
191
|
end
|
172
192
|
|
193
|
+
describe "self.to_big_decimal" do
|
194
|
+
it "returns the BigDecimal when given a BigDecimal" do
|
195
|
+
Braintree::Util.to_big_decimal(BigDecimal.new("12.34")).should == BigDecimal.new("12.34")
|
196
|
+
end
|
197
|
+
|
198
|
+
it "returns a BigDecimal when given a string" do
|
199
|
+
Braintree::Util.to_big_decimal("12.34").should == BigDecimal.new("12.34")
|
200
|
+
end
|
201
|
+
|
202
|
+
it "returns nil when given nil" do
|
203
|
+
Braintree::Util.to_big_decimal(nil).should be_nil
|
204
|
+
end
|
205
|
+
|
206
|
+
it "blows up when not given a String or BigDecimal" do
|
207
|
+
expect {
|
208
|
+
Braintree::Util.to_big_decimal(12.34)
|
209
|
+
}.to raise_error(/Argument must be a String or BigDecimal/)
|
210
|
+
end
|
211
|
+
end
|
173
212
|
|
174
213
|
describe "self.url_encode" do
|
175
214
|
it "url encodes the given text" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: braintree
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Braintree Payment Solutions
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-02-
|
12
|
+
date: 2010-02-26 00:00:00 -06:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -81,6 +81,7 @@ files:
|
|
81
81
|
- spec/unit/braintree/http_spec.rb
|
82
82
|
- spec/unit/braintree/paged_collection_spec.rb
|
83
83
|
- spec/unit/braintree/ssl_expiration_check_spec.rb
|
84
|
+
- spec/unit/braintree/subscription_spec.rb
|
84
85
|
- spec/unit/braintree/successful_result_spec.rb
|
85
86
|
- spec/unit/braintree/transaction/credit_card_details_spec.rb
|
86
87
|
- spec/unit/braintree/transaction/customer_details_spec.rb
|