stripe-rails 0.2.4 → 0.2.5
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/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
|