pay 1.0.0.beta4 → 1.0.0.beta5

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of pay might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 04da4cf2db886ff26020de3ff98a468590fe10fd884c0ecc751426495eb7e149
4
- data.tar.gz: f9bda1c5e7d668e6dc84af02c6f8a90c3e3fc63fdb4468c35621151e5191535d
3
+ metadata.gz: bff729474d018c2cff20005da118f397da764871afb0f15b15b8a589a7126ce4
4
+ data.tar.gz: 9805c0129c0682a688d5a1f17e7605168505e04fb74710ad055a5ace9ac7b1f3
5
5
  SHA512:
6
- metadata.gz: 692a1e69cca21a7b6329010a491043af5e31fe8e6d626bec1f244273a5078e86eb5ead1f6800c6e7f936da8bcf4f492606b8fa6e2987a4e13ec3df5f674b5893
7
- data.tar.gz: 9b4b8fc38fde6014934d52d1e1ffbdaa863184e4e74138b4eea114e100c4582f70e3a3265120fee047a9b49275e1fd110184ed09207909e30536e789f3ab4fbc
6
+ metadata.gz: ee9881e420e5bd374effc080faf624603cff7cec5bcbccf49ed234ccc441969fea8e6fa3736a59430b4e7dd7332bc327d18ab0a9206d2af46418c434bf655c6b
7
+ data.tar.gz: 16eac44178c8a355bf3c93657c760c2383fdb44d1ad2a9f0ceca61b155911d255621d5d6eeb84e240b19338a49937442d9f96d1dcdf807e8ae7ab25bce63b8b7
data/lib/pay/braintree.rb CHANGED
@@ -1,16 +1,41 @@
1
- require 'pay/braintree/api'
1
+ require 'pay/env'
2
2
  require 'pay/braintree/billable'
3
3
  require 'pay/braintree/charge'
4
4
  require 'pay/braintree/subscription'
5
5
 
6
6
  module Pay
7
7
  module Braintree
8
- def self.setup
9
- Pay::Braintree::Api.set_api_keys
8
+ include Env
9
+
10
+ extend self
11
+
12
+ def setup
13
+ Pay.braintree_gateway = ::Braintree::Gateway.new(
14
+ environment: environment.to_sym,
15
+ merchant_id: merchant_id,
16
+ public_key: public_key,
17
+ private_key: private_key
18
+ )
10
19
 
11
20
  Pay.charge_model.include Pay::Braintree::Charge
12
21
  Pay.subscription_model.include Pay::Braintree::Subscription
13
22
  Pay.user_model.include Pay::Braintree::Billable
14
23
  end
24
+
25
+ def public_key
26
+ find_value_by_name(:braintree, :public_key)
27
+ end
28
+
29
+ def private_key
30
+ find_value_by_name(:braintree, :private_key)
31
+ end
32
+
33
+ def merchant_id
34
+ find_value_by_name(:braintree, :merchant_id)
35
+ end
36
+
37
+ def environment
38
+ find_value_by_name(:braintree, :environment) || 'sandbox'
39
+ end
15
40
  end
16
41
  end
data/lib/pay/env.rb ADDED
@@ -0,0 +1,35 @@
1
+ module Pay
2
+ module Env
3
+
4
+ private
5
+
6
+ # Search for environment variables
7
+ #
8
+ # We must handle a lot of different cases, including the new Rails 6
9
+ # environment separated credentials files which have no nesting for
10
+ # the current environment.
11
+ #
12
+ # 1. Check environment variable
13
+ # 2. Check environment scoped credentials, then secrets
14
+ # 3. Check unscoped credentials, then secrets
15
+ def find_value_by_name(scope, name)
16
+ ENV["#{scope.upcase}_#{name.upcase}"] ||
17
+ credentials.dig(env, scope, name) ||
18
+ secrets.dig(env, scope, name) ||
19
+ credentials.dig(scope, name) ||
20
+ secrets.dig(scope, name)
21
+ end
22
+
23
+ def env
24
+ Rails.env.to_sym
25
+ end
26
+
27
+ def secrets
28
+ Rails.application.secrets
29
+ end
30
+
31
+ def credentials
32
+ Rails.application.credentials
33
+ end
34
+ end
35
+ end
data/lib/pay/stripe.rb CHANGED
@@ -1,4 +1,4 @@
1
- require 'pay/stripe/api'
1
+ require 'pay/env'
2
2
  require 'pay/stripe/billable'
3
3
  require 'pay/stripe/charge'
4
4
  require 'pay/stripe/subscription'
@@ -6,12 +6,29 @@ require 'pay/stripe/webhooks'
6
6
 
7
7
  module Pay
8
8
  module Stripe
9
- def self.setup
10
- Pay::Stripe::Api.set_api_keys
9
+ include Env
10
+
11
+ extend self
12
+
13
+ def setup
14
+ ::Stripe.api_key = private_key
15
+ ::StripeEvent.signing_secret = signing_secret
11
16
 
12
17
  Pay.charge_model.include Pay::Stripe::Charge
13
18
  Pay.subscription_model.include Pay::Stripe::Subscription
14
19
  Pay.user_model.include Pay::Stripe::Billable
15
20
  end
21
+
22
+ def public_key
23
+ find_value_by_name(:stripe, :public_key)
24
+ end
25
+
26
+ def private_key
27
+ find_value_by_name(:stripe, :private_key)
28
+ end
29
+
30
+ def signing_secret
31
+ find_value_by_name(:stripe, :signing_secret)
32
+ end
16
33
  end
17
34
  end
@@ -1,12 +1,6 @@
1
1
  require 'stripe_event'
2
2
  Dir[File.join(__dir__, 'webhooks', '**', '*.rb')].each { |file| require file }
3
3
 
4
- env = Rails.env.to_sym
5
- secrets = Rails.application.secrets
6
- credentials = Rails.application.credentials
7
-
8
- StripeEvent.signing_secret = ENV["STRIPE_SIGNING_SECRET"] || secrets.dig(env, :stripe, :signing_secret) || credentials.dig(env, :stripe, :signing_secret)
9
-
10
4
  StripeEvent.configure do |events|
11
5
  # Listen to the charge event to make sure we get non-subscription
12
6
  # purchases as well. Invoice is only for subscriptions and manual creation
data/lib/pay/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pay
2
- VERSION = '1.0.0.beta4'
2
+ VERSION = '1.0.0.beta5'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pay
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.beta4
4
+ version: 1.0.0.beta5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Charnes
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-03-26 00:00:00.000000000 Z
12
+ date: 2019-05-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -242,14 +242,13 @@ files:
242
242
  - lib/pay/billable.rb
243
243
  - lib/pay/billable/sync_email.rb
244
244
  - lib/pay/braintree.rb
245
- - lib/pay/braintree/api.rb
246
245
  - lib/pay/braintree/billable.rb
247
246
  - lib/pay/braintree/charge.rb
248
247
  - lib/pay/braintree/subscription.rb
249
248
  - lib/pay/engine.rb
249
+ - lib/pay/env.rb
250
250
  - lib/pay/receipts.rb
251
251
  - lib/pay/stripe.rb
252
- - lib/pay/stripe/api.rb
253
252
  - lib/pay/stripe/billable.rb
254
253
  - lib/pay/stripe/charge.rb
255
254
  - lib/pay/stripe/subscription.rb
@@ -1,30 +0,0 @@
1
- module Pay
2
- module Braintree
3
- module Api
4
- def self.set_api_keys
5
- environment = get_key_for(:environment, 'sandbox')
6
- merchant_id = get_key_for(:merchant_id)
7
- public_key = get_key_for(:public_key)
8
- private_key = get_key_for(:private_key)
9
-
10
- Pay.braintree_gateway = ::Braintree::Gateway.new(
11
- environment: environment.to_sym,
12
- merchant_id: merchant_id,
13
- public_key: public_key,
14
- private_key: private_key
15
- )
16
- end
17
-
18
- def self.get_key_for(name, default = '')
19
- env = Rails.env.to_sym
20
- secrets = Rails.application.secrets
21
- credentials = Rails.application.credentials
22
-
23
- ENV["BRAINTREE_#{name.upcase}"] ||
24
- secrets.dig(env, :braintree, name) ||
25
- credentials.dig(env, :braintree, name) ||
26
- default
27
- end
28
- end
29
- end
30
- end
@@ -1,13 +0,0 @@
1
- module Pay
2
- module Stripe
3
- module Api
4
- def self.set_api_keys
5
- env = Rails.env.to_sym
6
- secrets = Rails.application.secrets
7
- credentials = Rails.application.credentials
8
-
9
- ::Stripe.api_key = ENV["STRIPE_PRIVATE_KEY"] || secrets.dig(env, :stripe, :private_key) || credentials.dig(env, :stripe, :private_key)
10
- end
11
- end
12
- end
13
- end