stripe 1.36.1 → 1.36.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/History.txt +4 -0
  3. data/VERSION +1 -1
  4. data/lib/stripe/account.rb +25 -18
  5. data/lib/stripe/api_operations/create.rb +1 -1
  6. data/lib/stripe/api_operations/delete.rb +1 -1
  7. data/lib/stripe/api_operations/list.rb +1 -1
  8. data/lib/stripe/api_operations/update.rb +9 -13
  9. data/lib/stripe/api_resource.rb +4 -4
  10. data/lib/stripe/application_fee.rb +1 -1
  11. data/lib/stripe/application_fee_refund.rb +2 -2
  12. data/lib/stripe/balance_transaction.rb +1 -1
  13. data/lib/stripe/bank_account.rb +4 -4
  14. data/lib/stripe/bitcoin_receiver.rb +4 -4
  15. data/lib/stripe/bitcoin_transaction.rb +1 -1
  16. data/lib/stripe/card.rb +4 -4
  17. data/lib/stripe/charge.rb +6 -6
  18. data/lib/stripe/country_spec.rb +1 -1
  19. data/lib/stripe/customer.rb +3 -3
  20. data/lib/stripe/dispute.rb +1 -1
  21. data/lib/stripe/file_upload.rb +1 -1
  22. data/lib/stripe/invoice.rb +2 -2
  23. data/lib/stripe/list_object.rb +6 -1
  24. data/lib/stripe/order.rb +1 -1
  25. data/lib/stripe/product.rb +0 -9
  26. data/lib/stripe/reversal.rb +2 -2
  27. data/lib/stripe/singleton_api_resource.rb +3 -3
  28. data/lib/stripe/stripe_object.rb +128 -63
  29. data/lib/stripe/subscription.rb +3 -3
  30. data/lib/stripe/transfer.rb +1 -1
  31. data/lib/stripe/version.rb +1 -1
  32. data/test/stripe/account_test.rb +8 -8
  33. data/test/stripe/api_resource_test.rb +1 -1
  34. data/test/stripe/country_spec_test.rb +7 -7
  35. data/test/stripe/customer_card_test.rb +2 -2
  36. data/test/stripe/list_object_test.rb +35 -12
  37. data/test/stripe/recipient_card_test.rb +2 -2
  38. data/test/stripe/stripe_object_test.rb +83 -11
  39. data/test/test_data.rb +23 -23
  40. metadata +2 -2
@@ -17,14 +17,14 @@ module Stripe
17
17
  assert cards[0].kind_of? Stripe::Card
18
18
  end
19
19
 
20
- should "recipient cards should have the correct url" do
20
+ should "recipient cards should have the correct resource url" do
21
21
  c = recipient
22
22
  @mock.expects(:get).once.returns(make_response(make_card(
23
23
  :id => 'test_card',
24
24
  :recipient => 'test_recipient'
25
25
  )))
26
26
  card = c.cards.retrieve('card')
27
- assert_equal RECIPIENT_CARD_URL, card.url
27
+ assert_equal RECIPIENT_CARD_URL, card.resource_url
28
28
  end
29
29
 
30
30
  should "recipient cards should be deletable" do
@@ -121,20 +121,20 @@ module Stripe
121
121
 
122
122
  should "#serialize_params on an empty object" do
123
123
  obj = Stripe::StripeObject.construct_from({})
124
- assert_equal({}, Stripe::StripeObject.serialize_params(obj))
124
+ assert_equal({}, obj.serialize_params)
125
125
  end
126
126
 
127
127
  should "#serialize_params on a new object with a subobject" do
128
128
  obj = Stripe::StripeObject.new
129
129
  obj.metadata = { :foo => "bar" }
130
130
  assert_equal({ :metadata => { :foo => "bar" } },
131
- Stripe::StripeObject.serialize_params(obj))
131
+ obj.serialize_params)
132
132
  end
133
133
 
134
134
  should "#serialize_params on a basic object" do
135
135
  obj = Stripe::StripeObject.construct_from({ :foo => nil })
136
136
  obj.update_attributes(:foo => "bar")
137
- assert_equal({ :foo => "bar" }, Stripe::StripeObject.serialize_params(obj))
137
+ assert_equal({ :foo => "bar" }, obj.serialize_params)
138
138
  end
139
139
 
140
140
  should "#serialize_params on a more complex object" do
@@ -146,7 +146,7 @@ module Stripe
146
146
  })
147
147
  obj.foo.bar = "newbar"
148
148
  assert_equal({ :foo => { :bar => "newbar" } },
149
- Stripe::StripeObject.serialize_params(obj))
149
+ obj.serialize_params)
150
150
  end
151
151
 
152
152
  should "#serialize_params on an array" do
@@ -155,7 +155,7 @@ module Stripe
155
155
  })
156
156
  obj.foo = ["new-value"]
157
157
  assert_equal({ :foo => ["new-value"] },
158
- Stripe::StripeObject.serialize_params(obj))
158
+ obj.serialize_params)
159
159
  end
160
160
 
161
161
  should "#serialize_params on an array that shortens" do
@@ -164,7 +164,7 @@ module Stripe
164
164
  })
165
165
  obj.foo = ["new-value"]
166
166
  assert_equal({ :foo => ["new-value"] },
167
- Stripe::StripeObject.serialize_params(obj))
167
+ obj.serialize_params)
168
168
  end
169
169
 
170
170
  should "#serialize_params on an array that lengthens" do
@@ -173,7 +173,7 @@ module Stripe
173
173
  })
174
174
  obj.foo = ["new-value"] * 4
175
175
  assert_equal({ :foo => ["new-value"] * 4 },
176
- Stripe::StripeObject.serialize_params(obj))
176
+ obj.serialize_params)
177
177
  end
178
178
 
179
179
  should "#serialize_params on an array of hashes" do
@@ -187,12 +187,12 @@ module Stripe
187
187
  ]
188
188
  obj.foo[0].bar = "baz"
189
189
  assert_equal({ :foo => [{ :bar => "baz" }] },
190
- Stripe::StripeObject.serialize_params(obj))
190
+ obj.serialize_params)
191
191
  end
192
192
 
193
193
  should "#serialize_params doesn't include unchanged values" do
194
194
  obj = Stripe::StripeObject.construct_from({ :foo => nil })
195
- assert_equal({}, Stripe::StripeObject.serialize_params(obj))
195
+ assert_equal({}, obj.serialize_params)
196
196
  end
197
197
 
198
198
  should "#serialize_params on an array that is unchanged" do
@@ -200,7 +200,7 @@ module Stripe
200
200
  :foo => ["0-index", "1-index", "2-index"],
201
201
  })
202
202
  obj.foo = ["0-index", "1-index", "2-index"]
203
- assert_equal({}, Stripe::StripeObject.serialize_params(obj))
203
+ assert_equal({}, obj.serialize_params)
204
204
  end
205
205
 
206
206
  should "#serialize_params with a StripeObject" do
@@ -211,8 +211,80 @@ module Stripe
211
211
  obj.metadata =
212
212
  Stripe::StripeObject.construct_from({ :foo => 'bar' })
213
213
 
214
- serialized = Stripe::StripeObject.serialize_params(obj)
214
+ serialized = obj.serialize_params
215
215
  assert_equal({ :foo => "bar" }, serialized[:metadata])
216
216
  end
217
+
218
+ should "#serialize_params with a StripeObject that's been replaced" do
219
+ obj = Stripe::StripeObject.construct_from({
220
+ :metadata => Stripe::StripeObject.construct_from({ :bar => 'foo' })
221
+ })
222
+
223
+ # Here we replace the object wholesale which means that the client must
224
+ # be able to blank out the values that were in the old object, but which
225
+ # are no longer present in the new one.
226
+ obj.metadata =
227
+ Stripe::StripeObject.construct_from({ :baz => 'foo' })
228
+
229
+ serialized = obj.serialize_params
230
+ assert_equal({ :bar => "", :baz => 'foo' }, serialized[:metadata])
231
+ end
232
+
233
+ should "#serialize_params with an array of StripeObjects" do
234
+ obj = Stripe::StripeObject.construct_from({})
235
+ obj.metadata = [
236
+ Stripe::StripeObject.construct_from({ :foo => 'bar' })
237
+ ]
238
+
239
+ serialized = obj.serialize_params
240
+ assert_equal([{ :foo => "bar" }], serialized[:metadata])
241
+ end
242
+
243
+ should "#serialize_params and remove embedded APIResources" do
244
+ obj = Stripe::StripeObject.construct_from({
245
+ :customer => Customer.construct_from({})
246
+ })
247
+
248
+ serialized = obj.serialize_params
249
+ assert_equal({}, serialized)
250
+ end
251
+
252
+ should "#serialize_params takes a force option" do
253
+ obj = Stripe::StripeObject.construct_from({
254
+ :id => 'id',
255
+ :metadata => Stripe::StripeObject.construct_from({ :foo => 'bar' })
256
+ })
257
+
258
+ serialized = obj.serialize_params(:force => true)
259
+ assert_equal({ :id => 'id', :metadata => { :foo => 'bar' } }, serialized)
260
+ end
261
+
262
+ should "#dirty! forces an object and its subobjects to be saved" do
263
+ obj = Stripe::StripeObject.construct_from({
264
+ :id => 'id',
265
+ :metadata => Stripe::StripeObject.construct_from({ :foo => 'bar' })
266
+ })
267
+
268
+ # note that `force` and `dirty!` are for different things, but are
269
+ # functionally equivalent
270
+ obj.dirty!
271
+
272
+ serialized = obj.serialize_params
273
+ assert_equal({ :id => 'id', :metadata => { :foo => 'bar' } }, serialized)
274
+ end
275
+
276
+ should "warn that .serialize_params is deprecated" do
277
+ old_stderr = $stderr
278
+ $stderr = StringIO.new
279
+ begin
280
+ obj = Stripe::StripeObject.construct_from({})
281
+ Stripe::StripeObject.serialize_params(obj)
282
+ message = "NOTE: Stripe::StripeObject.serialize_params is " +
283
+ "deprecated; use #serialize_params instead"
284
+ assert_match Regexp.new(message), $stderr.string
285
+ ensure
286
+ $stderr = old_stderr
287
+ end
288
+ end
217
289
  end
218
290
  end
@@ -56,7 +56,7 @@ module Stripe
56
56
  {
57
57
  :data => [make_balance_transaction, make_balance_transaction, make_balance_transaction],
58
58
  :object => "list",
59
- :url => "/v1/balance/history"
59
+ :resource_url => "/v1/balance/history"
60
60
  }
61
61
  end
62
62
 
@@ -93,7 +93,7 @@ module Stripe
93
93
  {
94
94
  :data => [make_application_fee, make_application_fee, make_application_fee],
95
95
  :object => 'list',
96
- :url => '/v1/application_fees'
96
+ :resource_url => '/v1/application_fees'
97
97
  }
98
98
  end
99
99
 
@@ -101,7 +101,7 @@ module Stripe
101
101
  {
102
102
  :data => [make_application_fee_refund, make_application_fee_refund, make_application_fee_refund],
103
103
  :object => 'list',
104
- :url => '/v1/application_fees/' + fee_id + '/refunds'
104
+ :resource_url => '/v1/application_fees/' + fee_id + '/refunds'
105
105
  }
106
106
  end
107
107
 
@@ -126,7 +126,7 @@ module Stripe
126
126
  {
127
127
  :data => [make_customer, make_customer, make_customer],
128
128
  :object => 'list',
129
- :url => '/v1/customers'
129
+ :resource_url => '/v1/customers'
130
130
  }
131
131
  end
132
132
 
@@ -160,7 +160,7 @@ module Stripe
160
160
  {
161
161
  :data => [make_charge, make_charge, make_charge],
162
162
  :object => 'list',
163
- :url => '/v1/charges'
163
+ :resource_url => '/v1/charges'
164
164
  }
165
165
  end
166
166
 
@@ -184,7 +184,7 @@ module Stripe
184
184
  {
185
185
  :data => [make_dispute, make_dispute, make_dispute],
186
186
  :object => 'list',
187
- :url => '/v1/disputes'
187
+ :resource_url => '/v1/disputes'
188
188
  }
189
189
  end
190
190
 
@@ -192,7 +192,7 @@ module Stripe
192
192
  {
193
193
  :data => [make_card, make_card, make_card],
194
194
  :object => 'list',
195
- :url => '/v1/recipients/' + recipient_id + '/cards'
195
+ :resource_url => '/v1/recipients/' + recipient_id + '/cards'
196
196
  }
197
197
  end
198
198
 
@@ -200,7 +200,7 @@ module Stripe
200
200
  {
201
201
  :data => [make_card, make_card, make_card],
202
202
  :object => 'list',
203
- :url => '/v1/customers/' + customer_id + '/sources'
203
+ :resource_url => '/v1/customers/' + customer_id + '/sources'
204
204
  }
205
205
  end
206
206
 
@@ -235,7 +235,7 @@ module Stripe
235
235
  :created => 1403047735,
236
236
  :size => 4908,
237
237
  :purpose => params[:purpose] || "dispute_evidence",
238
- :url => nil,
238
+ :resource_url => nil,
239
239
  :type => nil,
240
240
  }
241
241
  end
@@ -244,7 +244,7 @@ module Stripe
244
244
  {
245
245
  :data => [make_file, make_file, make_file],
246
246
  :object => 'list',
247
- :url => '/v1/files'
247
+ :resource_url => '/v1/files'
248
248
  }
249
249
  end
250
250
 
@@ -287,7 +287,7 @@ module Stripe
287
287
  {
288
288
  :data => [make_subscription, make_subscription, make_subscription],
289
289
  :object => 'list',
290
- :url => '/v1/customers/' + customer_id + '/subscriptions'
290
+ :resource_url => '/v1/customers/' + customer_id + '/subscriptions'
291
291
  }
292
292
  end
293
293
 
@@ -297,7 +297,7 @@ module Stripe
297
297
  {
298
298
  :data => [make_refund(p), make_refund(p), make_refund(p)],
299
299
  :object => 'list',
300
- :url => charge ? "/v1/charges/#{charge}/refunds" : '/v1/refunds'
300
+ :resource_url => charge ? "/v1/charges/#{charge}/refunds" : '/v1/refunds'
301
301
  }
302
302
  end
303
303
 
@@ -305,7 +305,7 @@ module Stripe
305
305
  {
306
306
  :data => [make_reversal, make_reversal, make_reversal],
307
307
  :object => 'list',
308
- :url => '/v1/transfers/' + transfer_id + '/reversals'
308
+ :resource_url => '/v1/transfers/' + transfer_id + '/reversals'
309
309
  }
310
310
  end
311
311
 
@@ -366,7 +366,7 @@ module Stripe
366
366
  {
367
367
  :data => [make_invoice],
368
368
  :object => 'list',
369
- :url => '/v1/invoices?customer=test_customer'
369
+ :resource_url => '/v1/invoices?customer=test_customer'
370
370
  }
371
371
  end
372
372
 
@@ -396,7 +396,7 @@ module Stripe
396
396
  {
397
397
  :data => [make_recipient, make_recipient, make_recipient],
398
398
  :object => 'list',
399
- :url => '/v1/recipients'
399
+ :resource_url => '/v1/recipients'
400
400
  }
401
401
  end
402
402
 
@@ -427,7 +427,7 @@ module Stripe
427
427
  {
428
428
  :data => [make_transfer, make_transfer, make_transfer],
429
429
  :object => 'list',
430
- :url => '/v1/transfers'
430
+ :resource_url => '/v1/transfers'
431
431
  }
432
432
  end
433
433
 
@@ -466,7 +466,7 @@ module Stripe
466
466
  {
467
467
  :data => [make_bitcoin_receiver, make_bitcoin_receiver, make_bitcoin_receiver],
468
468
  :object => 'list',
469
- :url => '/v1/bitcoin/receivers'
469
+ :resource_url => '/v1/bitcoin/receivers'
470
470
  }
471
471
  end
472
472
 
@@ -485,7 +485,7 @@ module Stripe
485
485
  {
486
486
  :data => [make_bitcoin_transaction, make_bitcoin_transaction, make_bitcoin_transaction],
487
487
  :object => 'list',
488
- :url => "/v1/bitcoin/receivers/btcrcv_test_receiver/transactions"
488
+ :resource_url => "/v1/bitcoin/receivers/btcrcv_test_receiver/transactions"
489
489
  }
490
490
  end
491
491
 
@@ -567,7 +567,7 @@ module Stripe
567
567
  def make_product_array
568
568
  {
569
569
  :object => "list",
570
- :url => "/v1/products",
570
+ :resource_url => "/v1/products",
571
571
  :data => [
572
572
  make_product,
573
573
  make_product,
@@ -602,7 +602,7 @@ module Stripe
602
602
  def make_sku_array(product_id, params={})
603
603
  {
604
604
  :object => "list",
605
- :url => "/v1/skus",
605
+ :resource_url => "/v1/skus",
606
606
  :data => [
607
607
  make_sku(:product => product_id),
608
608
  make_sku(:product => product_id),
@@ -656,7 +656,7 @@ module Stripe
656
656
  def make_order_array(params={})
657
657
  {
658
658
  :object => "list",
659
- :url => "/v1/orders",
659
+ :resource_url => "/v1/orders",
660
660
  :data => [
661
661
  make_order,
662
662
  make_order,
@@ -675,7 +675,7 @@ module Stripe
675
675
  def country_spec_array
676
676
  {
677
677
  :object => "list",
678
- :url => "/v1/country_specs",
678
+ :resource_url => "/v1/country_specs",
679
679
  :data => [
680
680
  make_country_spec,
681
681
  make_country_spec,
@@ -709,7 +709,7 @@ module Stripe
709
709
  "tos_acceptance.ip"
710
710
  ],
711
711
  :additional => [
712
- "legal_entity.personal_id_number",
712
+ "legal_entity.personal_id_number",
713
713
  "legal_entity.verification.document"
714
714
  ]
715
715
  },
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stripe
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.36.1
4
+ version: 1.36.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ross Boucher
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-03-04 00:00:00.000000000 Z
12
+ date: 2016-03-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client