stripe-rails 1.0.1 → 1.0.2
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/.codeclimate.yml +29 -0
- data/.rubocop.yml +1156 -0
- data/Changelog.md +6 -0
- data/README.md +8 -1
- data/app/controllers/stripe/application_controller.rb +1 -0
- data/lib/generators/templates/plans.rb +1 -1
- data/lib/stripe/engine.rb +2 -2
- data/lib/stripe/plans.rb +2 -2
- data/lib/stripe/rails/version.rb +1 -1
- data/test/callbacks_spec.rb +7 -5
- data/test/coupon_builder_spec.rb +0 -1
- data/test/dummy/config/environments/test.rb +0 -6
- data/test/javascript_helper_spec.rb +1 -1
- data/test/pings_controller_spec.rb +0 -1
- data/test/plan_builder_spec.rb +10 -1
- data/test/spec_helper.rb +5 -1
- data/test/stripe_initializers_spec.rb +63 -0
- metadata +6 -4
- data/test/stripe_rails_spec.rb +0 -11
data/Changelog.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
## 1.0.2 (2017-08-15)
|
2
|
+
|
3
|
+
* Remove authenticity token check (thanks @lewispb)
|
4
|
+
* Adding timeout options to config (thanks @rgerard)
|
5
|
+
* Add 'day' as possible plan interval (thanks @vdragsic and @artemave)
|
6
|
+
|
1
7
|
## 1.0.1 (2017-08-08)
|
2
8
|
|
3
9
|
* Fixes a bug with Stripe JS V3, i.e. `Stripe.setPublishableKey` is no longer a function. Thanks to @kartikluke for reporting this.
|
data/README.md
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
[](http://badge.fury.io/rb/stripe-rails)
|
3
3
|
[](https://travis-ci.org/Everapps/stripe-rails)
|
4
4
|
[](https://codeclimate.com/github/Everapps/stripe-rails)
|
5
|
+
[](https://codeclimate.com/github/Everapps/stripe-rails/coverage)
|
5
6
|
[](https://gemnasium.com/thefrontside/stripe-rails)
|
6
7
|
|
7
8
|
|
@@ -362,7 +363,12 @@ See the [complete listing of all stripe events][5], and the [webhook tutorial][6
|
|
362
363
|
|
363
364
|
<a href="http://frontside.io"></a>
|
364
365
|
|
365
|
-
`Stripe::Rails` was originally developed with love and
|
366
|
+
`Stripe::Rails` was originally developed with love and fondness by your friends at [Frontside][7]. They are available for your custom software development needs, including integration with stripe.com.
|
367
|
+
|
368
|
+
<a href="https://www.evercondo.com"></a>
|
369
|
+
|
370
|
+
`Stripe::Rails` has also been supported by the fine folks at [Evercondo][11], the next generation condo management software.
|
371
|
+
|
366
372
|
|
367
373
|
[1]: https://stripe.com/docs/stripe.js
|
368
374
|
[2]: https://manage.stripe.com/#account/apikeys
|
@@ -374,6 +380,7 @@ See the [complete listing of all stripe events][5], and the [webhook tutorial][6
|
|
374
380
|
[8]: https://stripe.com/docs/api?lang=ruby#customers
|
375
381
|
[9]: https://stripe.com/docs/api?lang=ruby#invoices
|
376
382
|
[10]: https://stripe.com/docs/api?lang=ruby#charges
|
383
|
+
[11]: https://www.evercondo.com
|
377
384
|
|
378
385
|
|
379
386
|
## Code of Conduct
|
@@ -14,7 +14,7 @@
|
|
14
14
|
# # currency to use for the plan (default 'usd')
|
15
15
|
# plan.currency = 'usd'
|
16
16
|
#
|
17
|
-
# # interval must be either 'week', 'month' or 'year'
|
17
|
+
# # interval must be either 'day', 'week', 'month' or 'year'
|
18
18
|
# plan.interval = 'month'
|
19
19
|
#
|
20
20
|
# # only bill once every three months (default 1)
|
data/lib/stripe/engine.rb
CHANGED
@@ -8,7 +8,7 @@ module Stripe
|
|
8
8
|
attr_accessor :testing
|
9
9
|
end
|
10
10
|
|
11
|
-
stripe_config = config.stripe = Struct.new(:api_base, :api_version, :secret_key, :verify_ssl_certs, :publishable_key, :endpoint, :debug_js, :auto_mount, :eager_load).new
|
11
|
+
stripe_config = config.stripe = Struct.new(:api_base, :api_version, :secret_key, :verify_ssl_certs, :publishable_key, :endpoint, :debug_js, :auto_mount, :eager_load, :open_timeout, :read_timeout).new
|
12
12
|
|
13
13
|
def stripe_config.api_key=(key)
|
14
14
|
warn "[DEPRECATION] to align with stripe nomenclature, stripe.api_key has been renamed to config.stripe.secret_key"
|
@@ -27,7 +27,7 @@ module Stripe
|
|
27
27
|
end
|
28
28
|
|
29
29
|
initializer 'stripe.configure' do |app|
|
30
|
-
[:api_base, :verify_ssl_certs, :api_version].each do |key|
|
30
|
+
[:api_base, :verify_ssl_certs, :api_version, :open_timeout, :read_timeout].each do |key|
|
31
31
|
value = app.config.stripe.send(key)
|
32
32
|
Stripe.send("#{key}=", value) unless value.nil?
|
33
33
|
end
|
data/lib/stripe/plans.rb
CHANGED
@@ -8,8 +8,8 @@ module Stripe
|
|
8
8
|
|
9
9
|
validates_presence_of :id, :amount, :currency, :name
|
10
10
|
|
11
|
-
validates_inclusion_of :interval, :in => %w(week month year),
|
12
|
-
:message => "'%{value}' is not one of 'week', 'month' or 'year'"
|
11
|
+
validates_inclusion_of :interval, :in => %w(day week month year),
|
12
|
+
:message => "'%{value}' is not one of 'day', 'week', 'month' or 'year'"
|
13
13
|
|
14
14
|
validates :statement_descriptor, :length => { :maximum => 22 }
|
15
15
|
|
data/lib/stripe/rails/version.rb
CHANGED
data/test/callbacks_spec.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'minitest/autorun'
|
2
1
|
require 'spec_helper'
|
3
2
|
|
4
3
|
describe Stripe::Callbacks do
|
@@ -174,10 +173,13 @@ describe Stripe::Callbacks do
|
|
174
173
|
end
|
175
174
|
end
|
176
175
|
|
177
|
-
describe '
|
178
|
-
|
179
|
-
|
180
|
-
|
176
|
+
describe 'with forgery protection enabled' do
|
177
|
+
before do
|
178
|
+
ActionController::Base.allow_forgery_protection = true
|
179
|
+
ActionController::Base.protect_from_forgery with: :exception
|
181
180
|
end
|
181
|
+
after { ActionController::Base.allow_forgery_protection = false }
|
182
|
+
|
183
|
+
it { subject } # must_not raise error
|
182
184
|
end
|
183
185
|
end
|
data/test/coupon_builder_spec.rb
CHANGED
@@ -1,10 +1,4 @@
|
|
1
1
|
Dummy::Application.configure do
|
2
|
-
|
3
|
-
config.stripe.api_base = 'http://localhost:5000'
|
4
|
-
config.stripe.verify_ssl_certs = false
|
5
|
-
config.stripe.eager_load = 'dummy/model_with_callbacks', 'dummy/module_with_callbacks'
|
6
|
-
config.stripe.api_version = '2015-10-16'
|
7
|
-
|
8
2
|
# Settings specified here will take precedence over those in config/application.rb
|
9
3
|
|
10
4
|
# The test environment is used exclusively to run your application's
|
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'minitest/autorun'
|
2
1
|
require 'spec_helper'
|
3
2
|
|
4
3
|
describe Stripe::JavascriptHelper do
|
@@ -21,6 +20,7 @@ describe Stripe::JavascriptHelper do
|
|
21
20
|
|
22
21
|
describe 'when the debug flag is enabled' do
|
23
22
|
before { Rails.application.config.stripe.debug_js = true }
|
23
|
+
after { Rails.application.config.stripe.debug_js = false }
|
24
24
|
it 'should render the debug js' do
|
25
25
|
view.stripe_javascript_tag(:v1).must_include 'https://js.stripe.com/v1/stripe-debug.js'
|
26
26
|
end
|
data/test/plan_builder_spec.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'minitest/autorun'
|
2
1
|
require 'spec_helper'
|
3
2
|
|
4
3
|
describe 'building plans' do
|
@@ -32,6 +31,16 @@ describe 'building plans' do
|
|
32
31
|
Stripe::Plans['primo'].must_equal Stripe::Plans::PRIMO
|
33
32
|
end
|
34
33
|
|
34
|
+
it 'accepts a billing interval of a day' do
|
35
|
+
Stripe.plan :daily do |plan|
|
36
|
+
plan.name = 'Acme as a service daily'
|
37
|
+
plan.amount = 100
|
38
|
+
plan.interval = 'day'
|
39
|
+
end
|
40
|
+
|
41
|
+
Stripe::Plans::DAILY.wont_be_nil
|
42
|
+
end
|
43
|
+
|
35
44
|
it 'accepts a billing interval of a week' do
|
36
45
|
Stripe.plan :weekly do |plan|
|
37
46
|
plan.name = 'Acme as a service weekly'
|
data/test/spec_helper.rb
CHANGED
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Configuring the stripe engine" do
|
4
|
+
i_suck_and_my_tests_are_order_dependent! # the default test must be run first!
|
5
|
+
|
6
|
+
# NOTE: skipped `stripe.plans_and_coupons` to prevent warnings about constants
|
7
|
+
STRIPE_INITIALIZER_NAMES = %w{ stripe.configure.defaults stripe.configure stripe.callbacks.eager_load stripe.javascript_helper }
|
8
|
+
|
9
|
+
let(:app) { Rails.application }
|
10
|
+
let(:initializers) { STRIPE_INITIALIZER_NAMES.map{|name| app.initializers.find{|ini| ini.name == name } } }
|
11
|
+
|
12
|
+
def rerun_initializers!; initializers.each{|init| init.run(app) }; end
|
13
|
+
|
14
|
+
describe 'Stripe configurations' do
|
15
|
+
it "will have valid default values" do
|
16
|
+
Stripe.api_base.must_equal 'https://api.stripe.com'
|
17
|
+
Stripe.api_key.must_equal 'XYZ'
|
18
|
+
Stripe.api_version.must_be_nil
|
19
|
+
Stripe.verify_ssl_certs.must_equal true
|
20
|
+
Stripe.open_timeout.must_equal 30
|
21
|
+
Stripe.read_timeout.must_equal 80
|
22
|
+
|
23
|
+
app.config.stripe.endpoint.must_equal '/stripe'
|
24
|
+
app.config.stripe.auto_mount.must_equal true
|
25
|
+
app.config.stripe.debug_js.must_equal false
|
26
|
+
end
|
27
|
+
|
28
|
+
subject do
|
29
|
+
app.config.stripe.api_base = 'http://localhost:5000'
|
30
|
+
app.config.stripe.secret_key = 'SECRET_XYZ'
|
31
|
+
app.config.stripe.verify_ssl_certs = false
|
32
|
+
app.config.stripe.api_version = '2015-10-16'
|
33
|
+
app.config.stripe.open_timeout = 33
|
34
|
+
app.config.stripe.read_timeout = 88
|
35
|
+
rerun_initializers!
|
36
|
+
end
|
37
|
+
|
38
|
+
it "reads values that is set in the environment" do
|
39
|
+
subject
|
40
|
+
|
41
|
+
Stripe.api_base.must_equal 'http://localhost:5000'
|
42
|
+
Stripe.api_key.must_equal 'SECRET_XYZ'
|
43
|
+
Stripe.verify_ssl_certs.must_equal false
|
44
|
+
Stripe.api_version.must_equal '2015-10-16'
|
45
|
+
Stripe.open_timeout.must_equal 33
|
46
|
+
Stripe.read_timeout.must_equal 88
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe 'eager loaded callbacks' do
|
51
|
+
subject do
|
52
|
+
app.config.stripe.eager_load = 'dummy/model_with_callbacks', 'dummy/module_with_callbacks'
|
53
|
+
rerun_initializers!
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'should be eager loaded' do
|
57
|
+
subject
|
58
|
+
|
59
|
+
Dummy.const_defined?(:ModelWithCallbacks).must_equal true
|
60
|
+
Dummy.const_defined?(:ModuleWithCallbacks).must_equal true
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stripe-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Charles Lowell
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-08-
|
12
|
+
date: 2017-08-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -60,7 +60,9 @@ executables: []
|
|
60
60
|
extensions: []
|
61
61
|
extra_rdoc_files: []
|
62
62
|
files:
|
63
|
+
- ".codeclimate.yml"
|
63
64
|
- ".gitignore"
|
65
|
+
- ".rubocop.yml"
|
64
66
|
- ".travis.yml"
|
65
67
|
- CODE_OF_CONDUCT.md
|
66
68
|
- Changelog.md
|
@@ -139,7 +141,7 @@ files:
|
|
139
141
|
- test/pings_controller_spec.rb
|
140
142
|
- test/plan_builder_spec.rb
|
141
143
|
- test/spec_helper.rb
|
142
|
-
- test/
|
144
|
+
- test/stripe_initializers_spec.rb
|
143
145
|
- test/support/application_system_test_case.rb
|
144
146
|
- test/support/callback_helpers.rb
|
145
147
|
- test/support/null_system_test_case.rb
|
@@ -215,7 +217,7 @@ test_files:
|
|
215
217
|
- test/pings_controller_spec.rb
|
216
218
|
- test/plan_builder_spec.rb
|
217
219
|
- test/spec_helper.rb
|
218
|
-
- test/
|
220
|
+
- test/stripe_initializers_spec.rb
|
219
221
|
- test/support/application_system_test_case.rb
|
220
222
|
- test/support/callback_helpers.rb
|
221
223
|
- test/support/null_system_test_case.rb
|
data/test/stripe_rails_spec.rb
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
require 'minitest/autorun'
|
2
|
-
require 'spec_helper'
|
3
|
-
|
4
|
-
describe "Configuring the stripe engine" do
|
5
|
-
it "reads the api key that is set in the environment" do
|
6
|
-
Stripe.api_base.must_equal 'http://localhost:5000'
|
7
|
-
Stripe.api_key.must_equal 'XYZ'
|
8
|
-
Stripe.api_version.must_equal '2015-10-16'
|
9
|
-
Stripe.verify_ssl_certs.must_equal false
|
10
|
-
end
|
11
|
-
end
|