stripe 1.36.0 → 1.36.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.
- checksums.yaml +4 -4
- data/.travis.yml +0 -1
- data/History.txt +4 -0
- data/{README.rdoc → README.md} +27 -24
- data/VERSION +1 -1
- data/bin/stripe-console +12 -5
- data/lib/stripe/api_operations/update.rb +1 -1
- data/lib/stripe/application_fee.rb +1 -1
- data/lib/stripe/stripe_object.rb +1 -0
- data/lib/stripe/version.rb +1 -1
- data/stripe.gemspec +0 -1
- data/test/stripe/api_resource_test.rb +8 -8
- data/test/stripe/stripe_object_test.rb +33 -2
- metadata +3 -18
- data/gemfiles/json.gemfile +0 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0c61dab0439a342a7b81c1891bcc86de16f1c2e2
|
|
4
|
+
data.tar.gz: d703323b3ea491f50c7b2e3af3022593a4eec0e5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3f1b8e24a436c7aca910b09c4b39789c754a65894f5db8d9e7f3986d4f0c16eb79db4688fe5e8e1662873997cb6a867f9e6c90d4ecc983321e521ca5691fadd6
|
|
7
|
+
data.tar.gz: 32c5d898c296c3a6b41e0aad9a306d5987a4ede989d3345326856ac5130dd67751faaf97d3551a884594b22c42e05063737518651ff83d81ad2f446533f76470
|
data/.travis.yml
CHANGED
data/History.txt
CHANGED
data/{README.rdoc → README.md}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
# Stripe Ruby Bindings [](https://travis-ci.org/stripe/stripe-ruby)
|
|
2
2
|
|
|
3
3
|
The Stripe Ruby bindings provide a small SDK for convenient access to the
|
|
4
4
|
Stripe API from applications written in the Ruby language. It provides a
|
|
@@ -15,38 +15,40 @@ The bindings also provide other features. For example:
|
|
|
15
15
|
* Built-in mechanisms for the serialization of parameters according to the
|
|
16
16
|
expectations of Stripe's API.
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
## Documentation
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
See the [Ruby API docs](https://stripe.com/docs/api/ruby#intro).
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
## Installation
|
|
23
23
|
|
|
24
|
-
You don't need this source code unless you want to modify the gem. If
|
|
25
|
-
|
|
24
|
+
You don't need this source code unless you want to modify the gem. If you just
|
|
25
|
+
want to use the Stripe Ruby bindings, you should run:
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
gem install stripe
|
|
28
28
|
|
|
29
29
|
If you want to build the gem from source:
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
gem build stripe.gemspec
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
## Requirements
|
|
34
34
|
|
|
35
35
|
* Ruby 1.9.3 or above.
|
|
36
|
-
* rest-client
|
|
36
|
+
* rest-client
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
## Bundler
|
|
39
39
|
|
|
40
|
-
If you are installing via bundler, you should be sure to use the https
|
|
41
|
-
|
|
40
|
+
If you are installing via bundler, you should be sure to use the https rubygems
|
|
41
|
+
source in your Gemfile, as any gems fetched over http could potentially be
|
|
42
42
|
compromised in transit and alter the code of gems fetched securely over https:
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
``` ruby
|
|
45
|
+
source 'https://rubygems.org'
|
|
45
46
|
|
|
46
|
-
|
|
47
|
-
|
|
47
|
+
gem 'rails'
|
|
48
|
+
gem 'stripe'
|
|
49
|
+
```
|
|
48
50
|
|
|
49
|
-
|
|
51
|
+
## Development
|
|
50
52
|
|
|
51
53
|
Run all tests:
|
|
52
54
|
|
|
@@ -64,20 +66,21 @@ Update bundled CA certificates from the [Mozilla cURL release][curl]:
|
|
|
64
66
|
|
|
65
67
|
bundle exec rake update_certs
|
|
66
68
|
|
|
67
|
-
|
|
69
|
+
## Configuration
|
|
68
70
|
|
|
69
|
-
|
|
71
|
+
### ca_bundle_path
|
|
70
72
|
|
|
71
73
|
The location of a file containing a bundle of CA certificates. By default the
|
|
72
74
|
library will use an included bundle that can successfully validate Stripe
|
|
73
75
|
certificates.
|
|
74
76
|
|
|
75
|
-
|
|
77
|
+
### max_network_retries
|
|
76
78
|
|
|
77
|
-
When `max_network_retries` is set to a positive integer, stripe will retry
|
|
78
|
-
fail on a network error.
|
|
79
|
-
safety of retrying.
|
|
80
|
-
|
|
79
|
+
When `max_network_retries` is set to a positive integer, stripe will retry
|
|
80
|
+
requests that fail on a network error. Idempotency keys will be added to post
|
|
81
|
+
and get requests to ensure the safety of retrying. There will be a short delay
|
|
82
|
+
between each retry, with an exponential backoff algorithm used to determine the
|
|
83
|
+
length of the delay. Default value is 0.
|
|
81
84
|
|
|
82
85
|
Example:
|
|
83
86
|
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.36.
|
|
1
|
+
1.36.1
|
data/bin/stripe-console
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
|
-
irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
require 'irb'
|
|
4
|
+
require 'irb/completion'
|
|
5
|
+
|
|
6
|
+
require "#{File.dirname(__FILE__)}/../lib/stripe"
|
|
7
|
+
|
|
8
|
+
# Config IRB to enable --simple-prompt and auto indent
|
|
9
|
+
IRB.conf[:PROMPT_MODE] = :SIMPLE
|
|
10
|
+
IRB.conf[:AUTO_INDENT] = true
|
|
11
|
+
|
|
12
|
+
puts "Loaded gem 'stripe'"
|
|
13
|
+
|
|
14
|
+
IRB.start
|
|
@@ -17,7 +17,7 @@ module Stripe
|
|
|
17
17
|
# Let the caller override the URL but avoid serializing it.
|
|
18
18
|
req_url = params.delete(:req_url) || save_url
|
|
19
19
|
|
|
20
|
-
# We started unintentionally (sort of) allowing attributes
|
|
20
|
+
# We started unintentionally (sort of) allowing attributes sent to
|
|
21
21
|
# +save+ to override values used during the update. So as not to break
|
|
22
22
|
# the API, this makes that official here.
|
|
23
23
|
update_attributes(params)
|
|
@@ -9,7 +9,7 @@ module Stripe
|
|
|
9
9
|
# If you don't need access to an updated fee object after the refund, it's
|
|
10
10
|
# more performant to just call `fee.refunds.create` directly.
|
|
11
11
|
def refund(params={}, opts={})
|
|
12
|
-
self.refunds.create
|
|
12
|
+
self.refunds.create(params, opts)
|
|
13
13
|
|
|
14
14
|
# now that a refund has been created, we expect the state of this object
|
|
15
15
|
# to change as well (i.e. `refunded` will now be `true`) so refresh it
|
data/lib/stripe/stripe_object.rb
CHANGED
|
@@ -152,6 +152,7 @@ module Stripe
|
|
|
152
152
|
# the object has been reassigned
|
|
153
153
|
# e.g. as object.key = {foo => bar}
|
|
154
154
|
update = new_value
|
|
155
|
+
update = update.to_hash if update.is_a?(StripeObject)
|
|
155
156
|
new_keys = update.keys.map(&:to_sym)
|
|
156
157
|
|
|
157
158
|
# remove keys at the server, but not known locally
|
data/lib/stripe/version.rb
CHANGED
data/stripe.gemspec
CHANGED
|
@@ -652,10 +652,10 @@ module Stripe
|
|
|
652
652
|
:display_name => nil,
|
|
653
653
|
})
|
|
654
654
|
|
|
655
|
-
@mock.expects(:post).once.with("#{Stripe.api_base}/v1/accounts", nil, 'display_name=stripe').
|
|
655
|
+
@mock.expects(:post).once.with("#{Stripe.api_base}/v1/accounts", nil, 'display_name=stripe&metadata[key]=value').
|
|
656
656
|
returns(make_response({"id" => "charge_id"}))
|
|
657
657
|
|
|
658
|
-
account.save(:display_name => 'stripe')
|
|
658
|
+
account.save(:display_name => 'stripe', :metadata => {:key => 'value' })
|
|
659
659
|
end
|
|
660
660
|
end
|
|
661
661
|
|
|
@@ -665,14 +665,14 @@ module Stripe
|
|
|
665
665
|
Stripe.stubs(:max_network_retries).returns(2)
|
|
666
666
|
end
|
|
667
667
|
|
|
668
|
-
should 'retry failed network requests if specified and raise if error persists' do
|
|
668
|
+
should 'retry failed network requests if specified and raise if error persists' do
|
|
669
669
|
Stripe.expects(:sleep_time).at_least_once.returns(0)
|
|
670
670
|
@mock.expects(:post).times(3).with('https://api.stripe.com/v1/charges', nil, 'amount=50¤cy=usd').raises(Errno::ECONNREFUSED.new)
|
|
671
|
-
|
|
671
|
+
|
|
672
672
|
err = assert_raises Stripe::APIConnectionError do
|
|
673
673
|
Stripe::Charge.create(:amount => 50, :currency => 'usd', :card => { :number => nil })
|
|
674
674
|
end
|
|
675
|
-
assert_match(/Request was retried 2 times/, err.message)
|
|
675
|
+
assert_match(/Request was retried 2 times/, err.message)
|
|
676
676
|
end
|
|
677
677
|
|
|
678
678
|
should 'retry failed network requests if specified and return successful response' do
|
|
@@ -687,11 +687,11 @@ module Stripe
|
|
|
687
687
|
|
|
688
688
|
should 'not retry a SSLCertificateNotVerified error' do
|
|
689
689
|
@mock.expects(:post).times(1).with('https://api.stripe.com/v1/charges', nil, 'amount=50¤cy=usd').raises(RestClient::SSLCertificateNotVerified.new('message'))
|
|
690
|
-
|
|
690
|
+
|
|
691
691
|
err = assert_raises Stripe::APIConnectionError do
|
|
692
692
|
Stripe::Charge.create(:amount => 50, :currency => 'usd', :card => { :number => nil })
|
|
693
|
-
end
|
|
694
|
-
assert_no_match(/retried/, err.message)
|
|
693
|
+
end
|
|
694
|
+
assert_no_match(/retried/, err.message)
|
|
695
695
|
end
|
|
696
696
|
|
|
697
697
|
should 'not add an idempotency key to GET requests' do
|
|
@@ -45,10 +45,23 @@ module Stripe
|
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
should "recursively call to_hash on its values" do
|
|
48
|
+
# deep nested hash (when contained in an array) or StripeObject
|
|
48
49
|
nested_hash = { :id => 7, :foo => 'bar' }
|
|
49
50
|
nested = Stripe::StripeObject.construct_from(nested_hash)
|
|
50
|
-
|
|
51
|
-
|
|
51
|
+
|
|
52
|
+
obj = Stripe::StripeObject.construct_from({
|
|
53
|
+
:id => 1,
|
|
54
|
+
# simple hash that contains a StripeObject to help us test deep
|
|
55
|
+
# recursion
|
|
56
|
+
:nested => { :object => 'list', :data => [nested] },
|
|
57
|
+
:list => [nested]
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
expected_hash = {
|
|
61
|
+
:id => 1,
|
|
62
|
+
:nested => { :object => 'list', :data => [nested_hash] },
|
|
63
|
+
:list => [nested_hash]
|
|
64
|
+
}
|
|
52
65
|
assert_equal expected_hash, obj.to_hash
|
|
53
66
|
end
|
|
54
67
|
|
|
@@ -71,6 +84,12 @@ module Stripe
|
|
|
71
84
|
assert_equal "foo", obj.unknown
|
|
72
85
|
end
|
|
73
86
|
|
|
87
|
+
should "#update_attributes with a hash" do
|
|
88
|
+
obj = Stripe::StripeObject.construct_from({})
|
|
89
|
+
obj.update_attributes(:metadata => { :foo => 'bar' })
|
|
90
|
+
assert_equal Stripe::StripeObject, obj.metadata.class
|
|
91
|
+
end
|
|
92
|
+
|
|
74
93
|
should "warn that #refresh_from is deprecated" do
|
|
75
94
|
old_stderr = $stderr
|
|
76
95
|
$stderr = StringIO.new
|
|
@@ -183,5 +202,17 @@ module Stripe
|
|
|
183
202
|
obj.foo = ["0-index", "1-index", "2-index"]
|
|
184
203
|
assert_equal({}, Stripe::StripeObject.serialize_params(obj))
|
|
185
204
|
end
|
|
205
|
+
|
|
206
|
+
should "#serialize_params with a StripeObject" do
|
|
207
|
+
obj = Stripe::StripeObject.construct_from({})
|
|
208
|
+
|
|
209
|
+
# using an #update_attributes will end up converting a Hash into a
|
|
210
|
+
# StripeObject
|
|
211
|
+
obj.metadata =
|
|
212
|
+
Stripe::StripeObject.construct_from({ :foo => 'bar' })
|
|
213
|
+
|
|
214
|
+
serialized = Stripe::StripeObject.serialize_params(obj)
|
|
215
|
+
assert_equal({ :foo => "bar" }, serialized[:metadata])
|
|
216
|
+
end
|
|
186
217
|
end
|
|
187
218
|
end
|
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.
|
|
4
|
+
version: 1.36.1
|
|
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-
|
|
12
|
+
date: 2016-03-04 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rest-client
|
|
@@ -25,20 +25,6 @@ dependencies:
|
|
|
25
25
|
- - "~>"
|
|
26
26
|
- !ruby/object:Gem::Version
|
|
27
27
|
version: '1.4'
|
|
28
|
-
- !ruby/object:Gem::Dependency
|
|
29
|
-
name: json
|
|
30
|
-
requirement: !ruby/object:Gem::Requirement
|
|
31
|
-
requirements:
|
|
32
|
-
- - "~>"
|
|
33
|
-
- !ruby/object:Gem::Version
|
|
34
|
-
version: 1.8.1
|
|
35
|
-
type: :runtime
|
|
36
|
-
prerelease: false
|
|
37
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
38
|
-
requirements:
|
|
39
|
-
- - "~>"
|
|
40
|
-
- !ruby/object:Gem::Version
|
|
41
|
-
version: 1.8.1
|
|
42
28
|
- !ruby/object:Gem::Dependency
|
|
43
29
|
name: mocha
|
|
44
30
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -153,12 +139,11 @@ files:
|
|
|
153
139
|
- Gemfile
|
|
154
140
|
- History.txt
|
|
155
141
|
- LICENSE
|
|
156
|
-
- README.
|
|
142
|
+
- README.md
|
|
157
143
|
- Rakefile
|
|
158
144
|
- VERSION
|
|
159
145
|
- bin/stripe-console
|
|
160
146
|
- gemfiles/default-with-activesupport.gemfile
|
|
161
|
-
- gemfiles/json.gemfile
|
|
162
147
|
- gemfiles/yajl.gemfile
|
|
163
148
|
- lib/data/ca-certificates.crt
|
|
164
149
|
- lib/stripe.rb
|