stripe-rails 0.2.4 → 0.2.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Changelog.md +4 -0
- data/README.md +2 -2
- data/Rakefile +1 -1
- data/lib/stripe/configuration_builder.rb +13 -1
- data/lib/stripe/coupons.rb +1 -0
- data/lib/stripe/rails/tasks.rake +5 -0
- data/lib/stripe/rails/version.rb +1 -1
- data/test/all.rb +1 -0
- data/test/coupon_builder_spec.rb +61 -2
- data/test/stripe_rails_spec.rb +0 -9
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 659c7c36f43dc5ea3c5596a4a0b52d627c2d7246
|
4
|
+
data.tar.gz: 880df11f0ddffa5384c0be43f85b25e78d03a4c7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 45449d368835770b267dd7f72e483ffbbd0c00c7c15ae016d82593c28e6899d71509a9876a48d57024a4fab4f749fd857203e62f1e84ecae85a213980c2d8217
|
7
|
+
data.tar.gz: 4f7cc37aaac434771fa96506b9f86055499bfbcee24db0ad5d5a8caa33784848d681cf2533a26cd8944bb0420975713d3bbe64b9973b9eaa057124cf681af621
|
data/Changelog.md
CHANGED
data/README.md
CHANGED
@@ -115,7 +115,7 @@ NOTE: You must destroy plans manually from your stripe dashboard.
|
|
115
115
|
## Webhooks
|
116
116
|
|
117
117
|
Stripe::Rails automatically sets up your application to receive webhooks from stripe.com whenever
|
118
|
-
an payment event is generated. To enable this, you will need to configure your [stripe
|
118
|
+
an payment event is generated. To enable this, you will need to configure your [stripe webhooks][3] to
|
119
119
|
point back to your application. By default, the webhook controller is mounted at '/stripe/events' so
|
120
120
|
you would want to enter in `http://myproductionapp.com/stripe/events` as your url for live mode,
|
121
121
|
and `http://mystagingapp.com/stripe/events` for your test mode.
|
@@ -265,4 +265,4 @@ needs, including integration with stripe.com.
|
|
265
265
|
[7]: http://thefrontside.net
|
266
266
|
[8]: https://stripe.com/docs/api?lang=ruby#customers
|
267
267
|
[9]: https://stripe.com/docs/api?lang=ruby#invoices
|
268
|
-
[10]: https://stripe.com/docs/api?lang=ruby#charges
|
268
|
+
[10]: https://stripe.com/docs/api?lang=ruby#charges
|
data/Rakefile
CHANGED
@@ -39,6 +39,10 @@ module Stripe
|
|
39
39
|
def put!
|
40
40
|
all.each(&:put!)
|
41
41
|
end
|
42
|
+
|
43
|
+
def reset!
|
44
|
+
all.each(&:reset!)
|
45
|
+
end
|
42
46
|
end
|
43
47
|
end
|
44
48
|
|
@@ -75,12 +79,20 @@ module Stripe
|
|
75
79
|
end
|
76
80
|
end
|
77
81
|
|
82
|
+
def reset!
|
83
|
+
if object = exists?
|
84
|
+
object.delete
|
85
|
+
end
|
86
|
+
object = @stripe_class.create({:id => @id}.merge create_options)
|
87
|
+
puts "[RESET] - #{@stripe_class}:#{object}" unless Stripe::Engine.testing
|
88
|
+
end
|
89
|
+
|
78
90
|
def to_s
|
79
91
|
@id.to_s
|
80
92
|
end
|
81
93
|
|
82
94
|
def exists?
|
83
|
-
|
95
|
+
@stripe_class.retrieve(to_s)
|
84
96
|
rescue Stripe::InvalidRequestError
|
85
97
|
false
|
86
98
|
end
|
data/lib/stripe/coupons.rb
CHANGED
data/lib/stripe/rails/tasks.rake
CHANGED
@@ -19,6 +19,11 @@ namespace :stripe do
|
|
19
19
|
Stripe::Coupons.put!
|
20
20
|
end
|
21
21
|
|
22
|
+
desc 'delete and redefine all coupons defined in config/stripe/coupons.rb'
|
23
|
+
task 'coupons:reset!' => 'environment' do
|
24
|
+
Stripe::Coupons.reset!
|
25
|
+
end
|
26
|
+
|
22
27
|
desc "create all plans and coupons defined in config/stripe/{plans|coupons}.rb"
|
23
28
|
task 'prepare' => ['plans:prepare', 'coupons:prepare']
|
24
29
|
end
|
data/lib/stripe/rails/version.rb
CHANGED
data/test/all.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Dir['**/*_spec.rb'].each {|f| load f}
|
data/test/coupon_builder_spec.rb
CHANGED
@@ -1,7 +1,23 @@
|
|
1
1
|
require 'minitest/autorun'
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
|
-
describe 'building
|
4
|
+
describe 'building coupons' do
|
5
|
+
before do
|
6
|
+
Stripe::Coupons.configurations.clear
|
7
|
+
end
|
8
|
+
describe 'default values' do
|
9
|
+
before do
|
10
|
+
@coupon = Stripe.coupon(:firesale) do |coupon|
|
11
|
+
coupon.duration = 'once'
|
12
|
+
coupon.duration_in_months = 100
|
13
|
+
coupon.amount_off = 100
|
14
|
+
end
|
15
|
+
end
|
16
|
+
it "allows a single redemption by default" do
|
17
|
+
@coupon.max_redemptions.must_equal 1
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
5
21
|
describe 'simply' do
|
6
22
|
before do
|
7
23
|
@now = Time.now.utc
|
@@ -54,8 +70,51 @@ describe 'building plans' do
|
|
54
70
|
end
|
55
71
|
end
|
56
72
|
end
|
57
|
-
end
|
58
73
|
|
74
|
+
describe 'reseting' do
|
75
|
+
describe 'when it does not exist on stripe.com'do
|
76
|
+
before do
|
77
|
+
Stripe::Coupon.stubs(:retrieve).raises(Stripe::InvalidRequestError.new("not found", "id"))
|
78
|
+
end
|
79
|
+
it 'creates the plan' do
|
80
|
+
Stripe::Coupon.expects(:create).with(
|
81
|
+
:id => :gold25,
|
82
|
+
:duration => 'repeating',
|
83
|
+
:duration_in_months => 10,
|
84
|
+
:amount_off => 100,
|
85
|
+
:currency => 'USD',
|
86
|
+
:max_redemptions => 3,
|
87
|
+
:percent_off => 25,
|
88
|
+
:redeem_by => @now
|
89
|
+
)
|
90
|
+
Stripe::Coupons.reset!
|
91
|
+
end
|
92
|
+
end
|
93
|
+
describe 'when it does exist on stripe.com already' do
|
94
|
+
before do
|
95
|
+
@coupon = Stripe::Coupon.construct_from({
|
96
|
+
:id => :gold25,
|
97
|
+
})
|
98
|
+
Stripe::Coupon.stubs(:retrieve).returns(@coupon)
|
99
|
+
end
|
100
|
+
it 'first deletes the coupon then re-adds it' do
|
101
|
+
@coupon.expects(:delete)
|
102
|
+
Stripe::Coupon.expects(:create).with(
|
103
|
+
:id => :gold25,
|
104
|
+
:duration => 'repeating',
|
105
|
+
:duration_in_months => 10,
|
106
|
+
:amount_off => 100,
|
107
|
+
:currency => 'USD',
|
108
|
+
:max_redemptions => 3,
|
109
|
+
:percent_off => 25,
|
110
|
+
:redeem_by => @now
|
111
|
+
)
|
112
|
+
Stripe::Coupons.reset!
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
end
|
59
118
|
describe 'with missing mandatory values' do
|
60
119
|
it 'raises an exception after configuring it' do
|
61
120
|
proc {Stripe.coupon(:bad) {}}.must_raise Stripe::InvalidConfigurationError
|
data/test/stripe_rails_spec.rb
CHANGED
@@ -8,12 +8,3 @@ describe "Configuring the stripe engine" do
|
|
8
8
|
Stripe.verify_ssl_certs.must_equal false
|
9
9
|
end
|
10
10
|
end
|
11
|
-
|
12
|
-
describe 'initializing plans' do
|
13
|
-
require 'rake'
|
14
|
-
load 'stripe/rails/tasks.rake'
|
15
|
-
it 'creates any plans that do not exist on stripe.com' do
|
16
|
-
Stripe::Plans.expects(:put!)
|
17
|
-
Rake::Task['stripe:plans:prepare'].invoke
|
18
|
-
end
|
19
|
-
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: 0.2.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- rubygeek
|
@@ -29,7 +29,7 @@ cert_chain:
|
|
29
29
|
UgImJlChAzCoDP9zi9tdm6jAr7ttF25R9PPYr11ILb7dYe3qUzlNlM6zJx/nb31b
|
30
30
|
IhdyRVup4qLcqYSTPsm6u7VA
|
31
31
|
-----END CERTIFICATE-----
|
32
|
-
date: 2013-03-
|
32
|
+
date: 2013-03-18 00:00:00.000000000 Z
|
33
33
|
dependencies:
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: rails
|
@@ -137,6 +137,7 @@ files:
|
|
137
137
|
- lib/stripe/rails/version.rb
|
138
138
|
- stripe-rails.gemspec
|
139
139
|
- test/.DS_Store
|
140
|
+
- test/all.rb
|
140
141
|
- test/callbacks_spec.rb
|
141
142
|
- test/coupon_builder_spec.rb
|
142
143
|
- test/dummy/README.rdoc
|
@@ -201,6 +202,7 @@ specification_version: 4
|
|
201
202
|
summary: A gem to integrate stripe into your rails app
|
202
203
|
test_files:
|
203
204
|
- test/.DS_Store
|
205
|
+
- test/all.rb
|
204
206
|
- test/callbacks_spec.rb
|
205
207
|
- test/coupon_builder_spec.rb
|
206
208
|
- test/dummy/README.rdoc
|