stripe 1.11.0 → 1.12.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.
@@ -1,3 +1,8 @@
1
+ === 1.12.0 2014-05-21
2
+
3
+ * 1 major enhancement:
4
+ * Support for cards for recipients.
5
+
1
6
  === 1.11.0 2014-04-09
2
7
 
3
8
  * 2 minor enhancements:
@@ -1,4 +1,4 @@
1
- = Stripe Ruby bindings {<img src="https://gemnasium.com/stripe/stripe-ruby.png" alt="Dependency Status" />}[https://gemnasium.com/stripe/stripe-ruby]
1
+ = Stripe Ruby bindings {<img src="https://travis-ci.org/stripe/stripe-ruby.svg?branch=master" alt="Build Status" />}[https://travis-ci.org/stripe/stripe-ruby] {<img src="https://gemnasium.com/stripe/stripe-ruby.png" alt="Dependency Status" />}[https://gemnasium.com/stripe/stripe-ruby]
2
2
 
3
3
  == Installation
4
4
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.11.0
1
+ 1.12.0
@@ -5,7 +5,11 @@ module Stripe
5
5
  include Stripe::APIOperations::List
6
6
 
7
7
  def url
8
- "#{Customer.url}/#{CGI.escape(customer)}/cards/#{CGI.escape(id)}"
8
+ if respond_to?(:recipient)
9
+ "#{Recipient.url}/#{CGI.escape(recipient)}/cards/#{CGI.escape(id)}"
10
+ elsif respond_to?(:customer)
11
+ "#{Customer.url}/#{CGI.escape(customer)}/cards/#{CGI.escape(id)}"
12
+ end
9
13
  end
10
14
 
11
15
  def self.retrieve(id, api_key=nil)
@@ -13,6 +13,14 @@ module Stripe
13
13
  ]
14
14
  }
15
15
 
16
+ # Preflight the SSL certificate presented by the backend. This isn't 100%
17
+ # bulletproof, in that we're not actually validating the transport used to
18
+ # communicate with Stripe, merely that the first attempt to does not use a
19
+ # revoked certificate.
20
+
21
+ # Unfortunately the interface to OpenSSL doesn't make it easy to check the
22
+ # certificate before sending potentially sensitive data on the wire. This
23
+ # approach raises the bar for an attacker significantly.
16
24
 
17
25
  def self.check_ssl_cert(uri, ca_file)
18
26
  uri = URI.parse(uri)
@@ -1,3 +1,3 @@
1
1
  module Stripe
2
- VERSION = '1.11.0'
2
+ VERSION = '1.12.0'
3
3
  end
@@ -0,0 +1,57 @@
1
+ require File.expand_path('../../test_helper', __FILE__)
2
+
3
+ module Stripe
4
+ class CustomerCardTest < Test::Unit::TestCase
5
+ CUSTOMER_CARD_URL = '/v1/customers/test_customer/cards/test_card'
6
+
7
+ def customer
8
+ @mock.expects(:get).once.returns(test_response(test_customer))
9
+ Stripe::Customer.retrieve('test_customer')
10
+ end
11
+
12
+ should "customer cards should be listable" do
13
+ c = customer
14
+ @mock.expects(:get).once.returns(test_response(test_card_array(customer.id)))
15
+ cards = c.cards.all.data
16
+ assert cards.kind_of? Array
17
+ assert cards[0].kind_of? Stripe::Card
18
+ end
19
+
20
+ should "customer cards should have the correct url" do
21
+ c = customer
22
+ @mock.expects(:get).once.returns(test_response(test_card(
23
+ :id => 'test_card',
24
+ :customer => 'test_customer'
25
+ )))
26
+ card = c.cards.retrieve('card')
27
+ assert_equal CUSTOMER_CARD_URL, card.url
28
+ end
29
+
30
+ should "customer cards should be deletable" do
31
+ c = customer
32
+ @mock.expects(:get).once.returns(test_response(test_card))
33
+ @mock.expects(:delete).once.returns(test_response(test_card(:deleted => true)))
34
+ card = c.cards.retrieve('card')
35
+ card.delete
36
+ assert card.deleted
37
+ end
38
+
39
+ should "customer cards should be updateable" do
40
+ c = customer
41
+ @mock.expects(:get).once.returns(test_response(test_card(:exp_year => "2000")))
42
+ @mock.expects(:post).once.returns(test_response(test_card(:exp_year => "2100")))
43
+ card = c.cards.retrieve('card')
44
+ assert_equal "2000", card.exp_year
45
+ card.exp_year = "2100"
46
+ card.save
47
+ assert_equal "2100", card.exp_year
48
+ end
49
+
50
+ should "create should return a new customer card" do
51
+ c = customer
52
+ @mock.expects(:post).once.returns(test_response(test_card(:id => "test_card")))
53
+ card = c.cards.create(:card => "tok_41YJ05ijAaWaFS")
54
+ assert_equal "test_card", card.id
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,57 @@
1
+ require File.expand_path('../../test_helper', __FILE__)
2
+
3
+ module Stripe
4
+ class RecipientCardTest < Test::Unit::TestCase
5
+ RECIPIENT_CARD_URL = '/v1/recipients/test_recipient/cards/test_card'
6
+
7
+ def recipient
8
+ @mock.expects(:get).once.returns(test_response(test_recipient))
9
+ Stripe::Recipient.retrieve('test_recipient')
10
+ end
11
+
12
+ should "recipient cards should be listable" do
13
+ c = recipient
14
+ @mock.expects(:get).once.returns(test_response(test_card_array(recipient.id)))
15
+ cards = c.cards.all.data
16
+ assert cards.kind_of? Array
17
+ assert cards[0].kind_of? Stripe::Card
18
+ end
19
+
20
+ should "recipient cards should have the correct url" do
21
+ c = recipient
22
+ @mock.expects(:get).once.returns(test_response(test_card(
23
+ :id => 'test_card',
24
+ :recipient => 'test_recipient'
25
+ )))
26
+ card = c.cards.retrieve('card')
27
+ assert_equal RECIPIENT_CARD_URL, card.url
28
+ end
29
+
30
+ should "recipient cards should be deletable" do
31
+ c = recipient
32
+ @mock.expects(:get).once.returns(test_response(test_card))
33
+ @mock.expects(:delete).once.returns(test_response(test_card(:deleted => true)))
34
+ card = c.cards.retrieve('card')
35
+ card.delete
36
+ assert card.deleted
37
+ end
38
+
39
+ should "recipient cards should be updateable" do
40
+ c = recipient
41
+ @mock.expects(:get).once.returns(test_response(test_card(:exp_year => "2000")))
42
+ @mock.expects(:post).once.returns(test_response(test_card(:exp_year => "2100")))
43
+ card = c.cards.retrieve('card')
44
+ assert_equal "2000", card.exp_year
45
+ card.exp_year = "2100"
46
+ card.save
47
+ assert_equal "2100", card.exp_year
48
+ end
49
+
50
+ should "create should return a new recipient card" do
51
+ c = recipient
52
+ @mock.expects(:post).once.returns(test_response(test_card(:id => "test_card")))
53
+ card = c.cards.create(:card => "tok_41YJ05ijAaWaFS")
54
+ assert_equal "test_card", card.id
55
+ end
56
+ end
57
+ end
@@ -273,12 +273,15 @@ def test_invoice_customer_array
273
273
  end
274
274
 
275
275
  def test_recipient(params={})
276
+ id = params[:id] || 'rp_test_recipient'
276
277
  {
277
278
  :name => "Stripe User",
278
279
  :type => "individual",
279
280
  :livemode => false,
280
281
  :object => "recipient",
281
282
  :id => "rp_test_recipient",
283
+ :cards => test_card_array(id),
284
+ :default_card => "debit_test_card",
282
285
  :active_account => {
283
286
  :last4 => "6789",
284
287
  :bank_name => "STRIPE TEST BANK",
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.11.0
4
+ version: 1.12.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-04-10 00:00:00.000000000 Z
13
+ date: 2014-05-21 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rest-client
@@ -189,10 +189,12 @@ files:
189
189
  - test/stripe/certificate_blacklist_test.rb
190
190
  - test/stripe/charge_test.rb
191
191
  - test/stripe/coupon_test.rb
192
+ - test/stripe/customer_card_test.rb
192
193
  - test/stripe/customer_test.rb
193
194
  - test/stripe/invoice_test.rb
194
195
  - test/stripe/list_object_test.rb
195
196
  - test/stripe/metadata_test.rb
197
+ - test/stripe/recipient_card_test.rb
196
198
  - test/stripe/stripe_object_test.rb
197
199
  - test/stripe/subscription_test.rb
198
200
  - test/stripe/util_test.rb
@@ -229,11 +231,14 @@ test_files:
229
231
  - test/stripe/certificate_blacklist_test.rb
230
232
  - test/stripe/charge_test.rb
231
233
  - test/stripe/coupon_test.rb
234
+ - test/stripe/customer_card_test.rb
232
235
  - test/stripe/customer_test.rb
233
236
  - test/stripe/invoice_test.rb
234
237
  - test/stripe/list_object_test.rb
235
238
  - test/stripe/metadata_test.rb
239
+ - test/stripe/recipient_card_test.rb
236
240
  - test/stripe/stripe_object_test.rb
237
241
  - test/stripe/subscription_test.rb
238
242
  - test/stripe/util_test.rb
239
243
  - test/test_helper.rb
244
+ has_rdoc: