stripe-rails 0.2.5 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml ADDED
@@ -0,0 +1,9 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0
4
+ - 1.9.3
5
+ notifications:
6
+ email:
7
+ recipients:
8
+ - cowboyd@thefrontside.net
9
+
data/Changelog.md CHANGED
@@ -1,8 +1,11 @@
1
+ ## 0.2.6 (2013-10-17)
2
+ * add `auto_mount` option to allow for manually mounting the webhook endpoints
3
+
1
4
  ## 0.2.5 (2013-03-18)
2
5
  * make the default max redemptions 1
3
6
  * add stripe::coupons::reset! task to redefine all coupons
4
7
 
5
- ## 0.2.2 (2012-01-09)
8
+ ## 0.2.2 (2013-01-09)
6
9
  * bugfix allowing creation of coupons without max_redemptions
7
10
 
8
11
  ## 0.2.1 (2012-12-17)
data/Gemfile CHANGED
@@ -2,3 +2,8 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in stripe-rails.gemspec
4
4
  gemspec
5
+
6
+ gem "bundler", ">= 1.3.0"
7
+ gem "rake"
8
+ gem 'tzinfo'
9
+ gem 'mocha'
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012 rubygeek
1
+ Copyright (c) 2012-2013 The Frontside Software, Inc.
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -1,4 +1,8 @@
1
1
  # Stripe::Rails: A Rails Engine for use with [stripe.com](https://stripe.com)
2
+ [![Gem Version](https://badge.fury.io/rb/stripe-rails.png)](http://badge.fury.io/rb/stripe-rails)
3
+ [![Build Status](https://travis-ci.org/thefrontside/stripe-rails.png?branch=master)](https://travis-ci.org/thefrontside/stripe-rails)
4
+ [![Dependency Status](https://gemnasium.com/thefrontside/stripe-rails.png)](https://gemnasium.com/thefrontside/stripe-rails)
5
+
2
6
 
3
7
  This gem can help your rails application integrate with Stripe in the following ways
4
8
 
@@ -11,50 +15,79 @@ This gem can help your rails application integrate with Stripe in the following
11
15
 
12
16
  Add this line to your application's Gemfile:
13
17
 
14
- gem 'stripe-rails'
18
+ ```ruby
19
+ gem 'stripe-rails'
20
+ ```
15
21
 
16
22
  If you are going to be using [stripe.js][1] to securely collect credit card information
17
23
  on the client, then you will need to add the stripe javascript tags into your template.
18
24
  stripe-rails provides a helper to make this easy:
19
25
 
20
- <%= stripe_javascript_tag %>
21
-
26
+ ```erb
27
+ <%= stripe_javascript_tag %>
28
+ ```
22
29
  or, you can render it as a partial:
23
30
 
24
- <%= render :partial => 'stripe/js' %>
25
-
31
+ ```erb
32
+ <%= render :partial => 'stripe/js' %>
33
+ ```
26
34
  In both cases, stripe-rails will choose a version of stripe.js appropriate for your
27
35
  development environment and automatically configure it to use
28
36
  your publishable API key. By default it uses `stripe-debug.js` for your `development`
29
37
  environment and `stripe.js` for everything else, but you can manually configure it
30
38
  per environment
31
39
 
32
- config.stripe.debug_js = true # use stripe-debug.js
33
- config.stripe.debug_js = false # use stripe.js
40
+ ```ruby
41
+ config.stripe.debug_js = true # use stripe-debug.js
42
+ config.stripe.debug_js = false # use stripe.js
43
+ ```
34
44
 
35
45
  ### Setup your API keys.
36
46
 
37
47
  You will need to configure your application to authenticate with stripe.com
38
48
  using [your api key][1]. There are two methods to do this, you can either set the environment
39
- variable `STRIPE_API_KEY`, or use the rails configuration setting `config.stripe.api_key`.
49
+ variable `STRIPE_API_KEY`:
50
+
51
+ ```sh
52
+ export STRIPE_API_KEY=sk_test_xxyyzz
53
+ ```
54
+
55
+ or if you are on heroku:
56
+
57
+ ```sh
58
+ heroku config:add STRIPE_API_KEY=sk_test_xxyyzz
59
+ ```
60
+
61
+ You can also set this value from inside ruby configuration code:
62
+
63
+ ```ruby
64
+ config.stripe.api_key = "sk_test_xxyyzz"
65
+ ```
66
+
40
67
  In either case, it is recommended that you *not* check in this value into source control.
41
68
 
42
69
  You can verify that your api is set up and functioning properly by running the following command:
43
70
 
44
- rake stripe:verify
71
+ ```sh
72
+ rake stripe:verify
73
+ ```
45
74
 
46
75
  If you are going to be using stripe.js, then you will also need to set the value of your
47
76
  publishiable key. A nice way to do it is to set your test publishable for all environments:
48
77
 
49
- # config/application.rb
50
- # ...
51
- config.stripe.publishable_key = 'pk_test_XXXYYYZZZ'
78
+ ```ruby
79
+ # config/application.rb
80
+ # ...
81
+ config.stripe.publishable_key = 'pk_test_XXXYYYZZZ'
82
+ ```
52
83
 
53
84
  And then override it to use your live key in production only
54
85
 
55
- # config/environments/production.rb
56
- # ...
57
- config.stripe.publishable_key = 'pk_live_XXXYYYZZZ'
86
+ ```ruby
87
+ # config/environments/production.rb
88
+ # ...
89
+ config.stripe.publishable_key = 'pk_live_XXXYYYZZZ'
90
+ ```
58
91
 
59
92
  This key will be publicly visible on the internet, so it is ok to put in your source.
60
93
 
@@ -64,47 +97,58 @@ If you're using subscriptions, then you'll need to set up your application's pay
64
97
  and discounts. `Stripe::Rails` lets you automate the management of these definitions from
65
98
  within the application itself. To get started:
66
99
 
67
- rails generate stripe:install
100
+ ```sh
101
+ rails generate stripe:install
102
+ ```
68
103
 
69
104
  this will generate the configuration files containing your plan and coupon definitions:
70
105
 
71
- create config/stripe/plans.rb
72
- create config/stripe/coupons.rb
106
+ ```console
107
+ create config/stripe/plans.rb
108
+ create config/stripe/coupons.rb
109
+ ```
73
110
 
74
111
  ### Configuring your plans and coupons
75
112
 
76
113
  Use the plan builder to define as many plans as you want in `config/stripe/plans.rb`
77
114
 
78
- Stripe.plan :silver do |plan|
79
- plan.name = 'ACME Silver'
80
- plan.amount = 699 # $6.99
81
- plan.interval = 'month'
82
- end
115
+ ```ruby
116
+ Stripe.plan :silver do |plan|
117
+ plan.name = 'ACME Silver'
118
+ plan.amount = 699 # $6.99
119
+ plan.interval = 'month'
120
+ end
83
121
 
84
- Stripe.plan :gold do |plan|
85
- plan.name = 'ACME Gold'
86
- plan.amount = 999 # $9.99
87
- plan.interval = 'month'
88
- end
122
+ Stripe.plan :gold do |plan|
123
+ plan.name = 'ACME Gold'
124
+ plan.amount = 999 # $9.99
125
+ plan.interval = 'month'
126
+ end
127
+ ```
89
128
 
90
129
  This will define constants for these plans in the Stripe::Plans module so that you
91
130
  can refer to them by reference as opposed to an id string.
92
131
 
93
- Stripe::Plans::SILVER # => 'silver: ACME Silver'
94
- Stripe::Plans::GOLD # => 'gold: ACME Gold'
95
-
132
+ ```ruby
133
+ Stripe::Plans::SILVER # => 'silver: ACME Silver'
134
+ Stripe::Plans::GOLD # => 'gold: ACME Gold'
135
+ ```
96
136
 
97
137
  Coupons are created in much the same way:
98
138
 
99
- Stripe.coupon :super_elite_free_vip do |coupon|
100
- coupon.duration = 'forever'
101
- coupon.percent_off = 100
102
- coupon.max_redemptions = 5
103
- end
139
+ ```ruby
140
+ Stripe.coupon :super_elite_free_vip do |coupon|
141
+ coupon.duration = 'forever'
142
+ coupon.percent_off = 100
143
+ coupon.max_redemptions = 5
144
+ end
145
+ ```
104
146
 
105
147
  To upload your plans and coupons onto stripe.com, run:
106
148
 
107
- rake stripe:prepare
149
+ ```sh
150
+ rake stripe:prepare
151
+ ```
108
152
 
109
153
  This will create any plans and coupons that do not currently exist, and treat as a NOOP any
110
154
  plans that do, so you can run this command safely as many times as you wish. Now you can
@@ -123,9 +167,31 @@ and `http://mystagingapp.com/stripe/events` for your test mode.
123
167
  If you want to mount the stripe engine somewhere else, you can do so by setting the `stripe.endpoint`
124
168
  parameter. E.g.
125
169
 
126
- config.stripe.endpoint = '/payment/stripe-integration'
170
+ ```ruby
171
+ config.stripe.endpoint = '/payment/stripe-integration'
172
+ ```
173
+
174
+ Your new webook URL would then be `http://myproductionapp/payment/stripe-integration/events`
127
175
 
128
- Your new webook URL would then be `http://myproductionapp/payment/strip-integration/events`
176
+ ### Disabling auto mount
177
+
178
+ Sometimes, you don't want the stripe engine to be auto-mounted so that
179
+ you control *exactly* what priority it will take in your routing
180
+ table. This is especially important if you have a catch-all route
181
+ which should appear after all other routes. In order to disable
182
+ auto-mounting of the Stripe engine:
183
+
184
+ ```ruby
185
+ # in application.rb
186
+ config.stripe.auto_mount = false
187
+ ```
188
+
189
+ Then, you will have to manually mount the engine in your main application.
190
+
191
+ ```ruby
192
+ # in your application's routes.rb:
193
+ mount Stripe::Engine => "/stripe"
194
+ ```
129
195
 
130
196
  ### Responding to webhooks
131
197
 
@@ -133,34 +199,38 @@ Once you have your webhook URL configured you can respond to a stripe webhook *a
133
199
  application just by including the Stripe::Callbacks module into your class and declaring a
134
200
  callback with one of the callback methods. For example, to update a customer's payment status:
135
201
 
136
- class User < ActiveRecord::Base
137
- include Stripe::Callbacks
202
+ ```ruby
203
+ class User < ActiveRecord::Base
204
+ include Stripe::Callbacks
138
205
 
139
- after_customer_updated! do |customer, event|
140
- user = User.find_by_stripe_customer_id(customer.id)
141
- if customer.delinquent
142
- user.is_account_current = false
143
- user.save!
144
- end
145
- end
206
+ after_customer_updated! do |customer, event|
207
+ user = User.find_by_stripe_customer_id(customer.id)
208
+ if customer.delinquent
209
+ user.is_account_current = false
210
+ user.save!
146
211
  end
212
+ end
213
+ end
214
+ ```
147
215
 
148
216
  or to send an email with one of your customer's monthly invoices
149
217
 
150
- class InvoiceMailer < ActionMailer::Base
151
- include Stripe::Callbacks
218
+ ```ruby
219
+ class InvoiceMailer < ActionMailer::Base
220
+ include Stripe::Callbacks
152
221
 
153
- after_invoice_created! do |invoice, event|
154
- user = User.find_by_stripe_customer(invoice.customer)
155
- new_invoice(user, invoice).deliver
156
- end
222
+ after_invoice_created! do |invoice, event|
223
+ user = User.find_by_stripe_customer(invoice.customer)
224
+ new_invoice(user, invoice).deliver
225
+ end
157
226
 
158
- def new_invoice(user, invoice)
159
- @user = user
160
- @invoice = invoice
161
- mail :to => user.email, :subject => '[Acme.com] Your new invoice'
162
- end
163
- end
227
+ def new_invoice(user, invoice)
228
+ @user = user
229
+ @invoice = invoice
230
+ mail :to => user.email, :subject => '[Acme.com] Your new invoice'
231
+ end
232
+ end
233
+ ```
164
234
 
165
235
  The naming convention for the callback events is after__{callback_name}! where `callback_name`
166
236
  is name of the stripe event with all `.` characters substituted with underscores. So, for
@@ -184,13 +254,15 @@ receives a successful response. On the other hand, there are some tasks that are
184
254
  such a big deal if they get dropped on the floor. For example, A non-critical hook can be used to do things like have a bot
185
255
  notify your company's chatroom that something a credit card was successfully charged:
186
256
 
187
- class AcmeBot
188
- include Stripe::Callbacks
257
+ ```ruby
258
+ class AcmeBot
259
+ include Stripe::Callbacks
189
260
 
190
- after_charge_succeeded do |charge|
191
- announce "Attention all Dudes and Dudettes. Ya'll are so PAID!!!"
192
- end
193
- end
261
+ after_charge_succeeded do |charge|
262
+ announce "Attention all Dudes and Dudettes. Ya'll are so PAID!!!"
263
+ end
264
+ end
265
+ ```
194
266
 
195
267
  Chances are that if you experience a momentary failure in connectivity to your chatroom, you don't want the whole payment notification to fail.
196
268
 
@@ -201,51 +273,55 @@ Certain stripe events represent updates to existing data. You may want to only f
201
273
  are updated. You can pass an `:only` option to your callback to filter to specify which attribute updates you're interested in. For
202
274
  example, to warn users whenever their credit card has changed:
203
275
 
204
- class StripeMailer
205
- include Stripe::Callbacks
206
-
207
- after_customer_updated! :only => :active_card do |customer, evt|
208
- your_credit_card_on_file_was_updated_are_you_sure_this_was_you(customer).deliver
209
- end
210
- end
276
+ ```ruby
277
+ class StripeMailer
278
+ include Stripe::Callbacks
211
279
 
280
+ after_customer_updated! :only => :active_card do |customer, evt|
281
+ your_credit_card_on_file_was_updated_are_you_sure_this_was_you(customer).deliver
282
+ end
283
+ end
284
+ ```
212
285
 
213
286
  Filters can be specified as an array as well:
214
287
 
215
- module Accounting
216
- include Stripe::Callbacks
217
-
218
- after_invoice_updated! :only => [:amount, :subtotal] do
219
- # update our records
220
- end
221
- end
288
+ ```ruby
289
+ module Accounting
290
+ include Stripe::Callbacks
222
291
 
292
+ after_invoice_updated! :only => [:amount, :subtotal] do
293
+ # update our records
294
+ end
295
+ end
296
+ ```
223
297
 
224
298
  Alternatively, you can just pass a proc to filter the event manually. It will receive an instance of [`Stripe::Event`][4] as
225
299
  its parameter:
226
300
 
227
- module StagingOnly
228
- include Stripe::Callbacks
229
-
230
- after_charge_created! :only => proc {|charge, evt| unless evt.livemode} do |charge|
231
- puts "FAKE DATA, PLEASE IGNORE!"
232
- end
233
- end
301
+ ```ruby
302
+ module StagingOnly
303
+ include Stripe::Callbacks
234
304
 
305
+ after_charge_created! :only => proc {|charge, evt| unless evt.livemode} do |charge|
306
+ puts "FAKE DATA, PLEASE IGNORE!"
307
+ end
308
+ end
309
+ ```
235
310
 
236
311
  ### Catchall Callback
237
312
 
238
313
  The special 'stripe.event' callback will be invoked for every single event received from stripe.com. This can be useful for things
239
314
  like logging and analytics:
240
315
 
241
- class StripeFirehose
242
- include Stripe::Callbacks
243
-
244
- after_stripe_event do |target, event|
245
- # do something useful
246
- end
247
- end
316
+ ```ruby
317
+ class StripeFirehose
318
+ include Stripe::Callbacks
248
319
 
320
+ after_stripe_event do |target, event|
321
+ # do something useful
322
+ end
323
+ end
324
+ ```
249
325
 
250
326
  See the [complete listing of all stripe events][5], and the [webhook tutorial][6] for more great information on this subject.
251
327
 
data/config/routes.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  Rails.application.routes.draw do
2
- mount Stripe::Engine => Rails.application.config.stripe.endpoint
2
+ if Rails.application.config.stripe.auto_mount
3
+ mount Stripe::Engine => Rails.application.config.stripe.endpoint
4
+ end
3
5
  end
4
6
 
5
7
  Stripe::Engine.routes.draw do
@@ -11,7 +11,7 @@
11
11
  # # amount in cents. This is 6.99
12
12
  # plan.amount = 699
13
13
  #
14
- # # interval must be either 'month' or 'year'
14
+ # # interval must be either 'week', 'month' or 'year'
15
15
  # plan.interval = 'month'
16
16
  #
17
17
  # # only bill once every three months (default 1)
@@ -26,4 +26,4 @@
26
26
  # rake stripe:prepare
27
27
  #
28
28
  # This will export any new plans to stripe.com so that you can
29
- # begin using them in your API calls.
29
+ # begin using them in your API calls.
@@ -6,15 +6,20 @@ module Stripe
6
6
 
7
7
  callback 'account.updated'
8
8
  callback 'account.application.deauthorized'
9
+ callback 'balance.available'
9
10
  callback 'charge.succeeded'
10
11
  callback 'charge.failed'
11
12
  callback 'charge.refunded'
13
+ callback 'charge.captured'
12
14
  callback 'charge.dispute.created'
13
15
  callback 'charge.dispute.updated'
14
16
  callback 'charge.dispute.closed'
15
17
  callback 'customer.created'
16
18
  callback 'customer.updated'
17
19
  callback 'customer.deleted'
20
+ callback 'customer.card.created'
21
+ callback 'customer.card.updated'
22
+ callback 'customer.card.deleted'
18
23
  callback 'customer.subscription.created'
19
24
  callback 'customer.subscription.updated'
20
25
  callback 'customer.subscription.deleted'
@@ -37,6 +42,7 @@ module Stripe
37
42
  callback 'coupon.deleted'
38
43
  callback 'transfer.created'
39
44
  callback 'transfer.updated'
45
+ callback 'transfer.paid'
40
46
  callback 'transfer.failed'
41
47
  callback 'ping'
42
48
  callback 'stripe.event'
@@ -70,4 +76,4 @@ module Stripe
70
76
  end
71
77
  end
72
78
  end
73
- end
79
+ end
@@ -1,3 +1,5 @@
1
+ require "active_model"
2
+
1
3
  module Stripe
2
4
  module ConfigurationBuilder
3
5
  extend ActiveSupport::Concern
@@ -108,4 +110,4 @@ module Stripe
108
110
  end
109
111
 
110
112
  end
111
- end
113
+ end
data/lib/stripe/engine.rb CHANGED
@@ -8,12 +8,13 @@ module Stripe
8
8
  attr_accessor :testing
9
9
  end
10
10
 
11
- config.stripe = Struct.new(:api_base, :api_key, :verify_ssl_certs, :publishable_key, :endpoint, :debug_js).new
11
+ config.stripe = Struct.new(:api_base, :api_key, :verify_ssl_certs, :publishable_key, :endpoint, :debug_js, :auto_mount).new
12
12
 
13
13
  initializer 'stripe.configure.defaults', :before => 'stripe.configure' do |app|
14
14
  stripe = app.config.stripe
15
15
  stripe.api_key ||= ENV['STRIPE_API_KEY']
16
16
  stripe.endpoint ||= '/stripe'
17
+ stripe.auto_mount = true if stripe.auto_mount.nil?
17
18
  if stripe.debug_js.nil?
18
19
  stripe.debug_js = ::Rails.env.development?
19
20
  end
data/lib/stripe/plans.rb CHANGED
@@ -7,7 +7,7 @@ module Stripe
7
7
  attr_accessor :name, :amount, :interval, :interval_count, :trial_period_days
8
8
 
9
9
  validates_presence_of :id, :name, :amount
10
- validates_inclusion_of :interval, :in => %w(month year), :message => "'%{value}' is not one of 'month' or 'year'"
10
+ validates_inclusion_of :interval, :in => %w(week month year), :message => "'%{value}' is not one of 'week', 'month' or 'year'"
11
11
 
12
12
  def initialize(*args)
13
13
  super(*args)
@@ -28,4 +28,4 @@ module Stripe
28
28
  end
29
29
  end
30
30
  end
31
- end
31
+ end
@@ -1,5 +1,5 @@
1
1
  module Stripe
2
2
  module Rails
3
- VERSION = "0.2.5"
3
+ VERSION = "0.2.6"
4
4
  end
5
5
  end
data/stripe-rails.gemspec CHANGED
@@ -16,8 +16,4 @@ Gem::Specification.new do |gem|
16
16
  gem.version = Stripe::Rails::VERSION
17
17
  gem.add_dependency 'rails', '>= 3'
18
18
  gem.add_dependency 'stripe'
19
-
20
- gem.add_development_dependency 'tzinfo'
21
- gem.add_development_dependency 'mocha'
22
- gem.add_development_dependency 'rack-test'
23
19
  end
@@ -15,9 +15,6 @@ Dummy::Application.configure do
15
15
  config.serve_static_assets = true
16
16
  config.static_cache_control = "public, max-age=3600"
17
17
 
18
- # Log error messages when you accidentally call methods on nil
19
- config.whiny_nils = true
20
-
21
18
  # Show full error reports and disable caching
22
19
  config.consider_all_requests_local = true
23
20
  config.action_controller.perform_caching = false
@@ -38,4 +35,7 @@ Dummy::Application.configure do
38
35
 
39
36
  # Print deprecation notices to the stderr
40
37
  config.active_support.deprecation = :stderr
38
+
39
+ # Set eager_load to false as it's unneeded
40
+ config.eager_load = false
41
41
  end
@@ -5,3 +5,4 @@
5
5
  # Make sure the secret is at least 30 characters and all random,
6
6
  # no regular words or you'll be exposed to dictionary attacks.
7
7
  Dummy::Application.config.secret_token = '5e507bc08a89b8b07e1ce08c932ec89771be6500e4d2d64c38164d2405d27578c33edc2982dd9ee67d4c49e0dd75992ac2ed6eb120bea0e16516549466906d06'
8
+ Dummy::Application.config.secret_key_base = 'a87ae91f28326ebe41f7ce9b7b799bb9'
@@ -29,6 +29,46 @@ describe 'building plans' do
29
29
  Stripe::Plans['primo'].must_equal Stripe::Plans::PRIMO
30
30
  end
31
31
 
32
+ it 'accepts a billing interval of a week' do
33
+ Stripe.plan :weekly do |plan|
34
+ plan.name = 'Acme as a service weekly'
35
+ plan.amount = 100
36
+ plan.interval = 'week'
37
+ end
38
+
39
+ Stripe::Plans::WEEKLY.wont_be_nil
40
+ end
41
+
42
+ it 'accepts a billing interval of a month' do
43
+ Stripe.plan :monthly do |plan|
44
+ plan.name = 'Acme as a service monthly'
45
+ plan.amount = 400
46
+ plan.interval = 'month'
47
+ end
48
+
49
+ Stripe::Plans::MONTHLY.wont_be_nil
50
+ end
51
+
52
+ it 'accepts a billing interval of a year' do
53
+ Stripe.plan :yearly do |plan|
54
+ plan.name = 'Acme as a service yearly'
55
+ plan.amount = 4800
56
+ plan.interval = 'year'
57
+ end
58
+
59
+ Stripe::Plans::YEARLY.wont_be_nil
60
+ end
61
+
62
+ it 'denies arbitrary billing intervals' do
63
+ lambda {
64
+ Stripe.plan :broken do |plan|
65
+ plan.name = 'Acme as a service BROKEN'
66
+ plan.amount = 999
67
+ plan.interval = 'anything'
68
+ end
69
+ }.must_raise Stripe::InvalidConfigurationError
70
+ end
71
+
32
72
  describe 'uploading' do
33
73
  describe 'when none exists on stripe.com' do
34
74
  before do
metadata CHANGED
@@ -1,114 +1,62 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: stripe-rails
3
- version: !ruby/object:Gem::Version
4
- version: 0.2.5
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 2
9
+ - 6
10
+ version: 0.2.6
5
11
  platform: ruby
6
- authors:
12
+ authors:
7
13
  - rubygeek
8
14
  autorequire:
9
15
  bindir: bin
10
- cert_chain:
11
- - |
12
- -----BEGIN CERTIFICATE-----
13
- MIIDPjCCAiagAwIBAgIBADANBgkqhkiG9w0BAQUFADBFMRAwDgYDVQQDDAdjb3di
14
- b3lkMRwwGgYKCZImiZPyLGQBGRYMdGhlZnJvbnRzaWRlMRMwEQYKCZImiZPyLGQB
15
- GRYDbmV0MB4XDTEzMDEzMDIxMDYwNFoXDTE0MDEzMDIxMDYwNFowRTEQMA4GA1UE
16
- AwwHY293Ym95ZDEcMBoGCgmSJomT8ixkARkWDHRoZWZyb250c2lkZTETMBEGCgmS
17
- JomT8ixkARkWA25ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAO45
18
- CUxpETDGYXjCCy2dMg/aIrdrTqBqQW5ZrzhHxF9EkcdmWFr0z/qMz0JSpZ3pF11Z
19
- KYaj5PaQQpjZfLPwbuiGGkuSWi+UAac//V18xo6S4lzRBjO+gpzG9f2AOzt9b+SR
20
- Uc8UhO7QBZ5edUDxMxw9QstD+U0YBAlzsPJbHuUOqdtxXmNQCds3ZnqTgZaIpdUy
21
- CSejtrukSmlthxFzwgMezYQhcYxmkl+Q475JUodnI6Pjc6nja/Or8Y6cEWiLgeUa
22
- a+efcPGLDEbwJC7TGRrvk8yassMByBEJ3XueTMzeqWFd+665ptciojYo6BvIAR0N
23
- iLwks0x567FZyS8SqTcCAwEAAaM5MDcwCQYDVR0TBAIwADAdBgNVHQ4EFgQUxVgR
24
- 5TUqf7Hd24ICb3g4FNbM7oYwCwYDVR0PBAQDAgSwMA0GCSqGSIb3DQEBBQUAA4IB
25
- AQDdJj+NzZhiYXA56z0wzRUA/Fcf6CYqKB+RFRlPssDEcHTor5SnwdWgQof/gNLi
26
- Qel1Om4zO0Shcp89jxaUqtvEdYVhmyfc0vycHmemKttNBT734yMrEJtF8Hhy+Dnz
27
- 9CzixXLvgGaRH+mf3M0+l+zIDJJr2L+39L8cyTSSRnp/srfI8aSmJKhGshudBKoC
28
- Ty6Gi071pwoJXvdMaE/6iPy7bUzlndYdHyYuWSKaO9N47HqQ62oEnBraglw6ghoi
29
- UgImJlChAzCoDP9zi9tdm6jAr7ttF25R9PPYr11ILb7dYe3qUzlNlM6zJx/nb31b
30
- IhdyRVup4qLcqYSTPsm6u7VA
31
- -----END CERTIFICATE-----
32
- date: 2013-03-18 00:00:00.000000000 Z
33
- dependencies:
34
- - !ruby/object:Gem::Dependency
16
+ cert_chain: []
17
+
18
+ date: 2013-10-17 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
35
21
  name: rails
36
- requirement: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - '>='
39
- - !ruby/object:Gem::Version
40
- version: '3'
41
- type: :runtime
42
22
  prerelease: false
43
- version_requirements: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - '>='
46
- - !ruby/object:Gem::Version
47
- version: '3'
48
- - !ruby/object:Gem::Dependency
49
- name: stripe
50
- requirement: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - '>='
53
- - !ruby/object:Gem::Version
54
- version: '0'
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 5
29
+ segments:
30
+ - 3
31
+ version: "3"
55
32
  type: :runtime
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
35
+ name: stripe
56
36
  prerelease: false
57
- version_requirements: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- - !ruby/object:Gem::Dependency
63
- name: tzinfo
64
- requirement: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - '>='
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- type: :development
70
- prerelease: false
71
- version_requirements: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - '>='
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- - !ruby/object:Gem::Dependency
77
- name: mocha
78
- requirement: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - '>='
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- type: :development
84
- prerelease: false
85
- version_requirements: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - '>='
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- - !ruby/object:Gem::Dependency
91
- name: rack-test
92
- requirement: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - '>='
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- type: :development
98
- prerelease: false
99
- version_requirements: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - '>='
102
- - !ruby/object:Gem::Version
103
- version: '0'
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ hash: 3
43
+ segments:
44
+ - 0
45
+ version: "0"
46
+ type: :runtime
47
+ version_requirements: *id002
104
48
  description: A gem to integrate stripe into your rails app
105
- email:
49
+ email:
106
50
  - nola@rubygeek.com
107
51
  executables: []
52
+
108
53
  extensions: []
54
+
109
55
  extra_rdoc_files: []
110
- files:
56
+
57
+ files:
111
58
  - .gitignore
59
+ - .travis.yml
112
60
  - Changelog.md
113
61
  - Gemfile
114
62
  - LICENSE
@@ -177,30 +125,40 @@ files:
177
125
  - test/plan_builder_spec.rb
178
126
  - test/spec_helper.rb
179
127
  - test/stripe_rails_spec.rb
180
- homepage: ''
128
+ homepage: ""
181
129
  licenses: []
182
- metadata: {}
130
+
183
131
  post_install_message:
184
132
  rdoc_options: []
185
- require_paths:
133
+
134
+ require_paths:
186
135
  - lib
187
- required_ruby_version: !ruby/object:Gem::Requirement
188
- requirements:
189
- - - '>='
190
- - !ruby/object:Gem::Version
191
- version: '0'
192
- required_rubygems_version: !ruby/object:Gem::Requirement
193
- requirements:
194
- - - '>='
195
- - !ruby/object:Gem::Version
196
- version: '0'
136
+ required_ruby_version: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ hash: 3
142
+ segments:
143
+ - 0
144
+ version: "0"
145
+ required_rubygems_version: !ruby/object:Gem::Requirement
146
+ none: false
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ hash: 3
151
+ segments:
152
+ - 0
153
+ version: "0"
197
154
  requirements: []
155
+
198
156
  rubyforge_project:
199
- rubygems_version: 2.0.0
157
+ rubygems_version: 1.8.24
200
158
  signing_key:
201
- specification_version: 4
159
+ specification_version: 3
202
160
  summary: A gem to integrate stripe into your rails app
203
- test_files:
161
+ test_files:
204
162
  - test/.DS_Store
205
163
  - test/all.rb
206
164
  - test/callbacks_spec.rb
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 659c7c36f43dc5ea3c5596a4a0b52d627c2d7246
4
- data.tar.gz: 880df11f0ddffa5384c0be43f85b25e78d03a4c7
5
- SHA512:
6
- metadata.gz: 45449d368835770b267dd7f72e483ffbbd0c00c7c15ae016d82593c28e6899d71509a9876a48d57024a4fab4f749fd857203e62f1e84ecae85a213980c2d8217
7
- data.tar.gz: 4f7cc37aaac434771fa96506b9f86055499bfbcee24db0ad5d5a8caa33784848d681cf2533a26cd8944bb0420975713d3bbe64b9973b9eaa057124cf681af621