supercharged 2.0.4 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +3 -1
- data/app/assets/javascripts/charge_form.js.coffee.erb +2 -2
- data/app/controllers/supercharged/charges_controller.rb +1 -1
- data/app/controllers/supercharged/gateway_notifications_controller.rb +4 -4
- data/app/helpers/supercharged/charges_helper.rb +4 -6
- data/app/models/charge.rb +2 -1
- data/app/models/gateway_notification.rb +12 -7
- data/app/models/supercharged/charge/base.rb +39 -33
- data/config/routes.rb +1 -1
- data/lib/supercharged/version.rb +1 -1
- data/test/fake_app.rb +1 -0
- data/test/supercharged/controllers/charges_controller_test.rb +3 -3
- data/test/supercharged/controllers/gateway_notifications_controller_test.rb +8 -8
- data/test/supercharged/helpers/charges_helper_test.rb +3 -1
- data/test/supercharged/models/charge_test.rb +1 -1
- data/test/supercharged/models/geneway_notification_test.rb +5 -3
- data/test/test_helper.rb +0 -2
- metadata +29 -85
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5e8d7ac5853344d5679abd3e17acf7dc1b6279b6
|
4
|
+
data.tar.gz: 6960d5ece3a7b407c7b13ca86dd57715452b7bea
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 602af557001d93eb89e6e76412b6e1a1beea04be1a75f98850710471a3ec073e15805fbbf1587bfedde64532b1d87d0877fa1fb23a19c6fb11456b6eef571c80
|
7
|
+
data.tar.gz: ac0b75823e466d61dd7c05c399b6e3cb008f739491a2059443a0f6dd9f7265140fdcf315f686c9a4d1fe85d4a4e002a33ddbbe40152c752a3e7e8e2fd8ca060d
|
data/README.md
CHANGED
@@ -36,6 +36,7 @@ Create config/initializers/supercharged.rb
|
|
36
36
|
|
37
37
|
```ruby
|
38
38
|
ActiveMerchant::Billing::Base.integration_mode = Rails.env.production? ? :production : :test
|
39
|
+
ActiveMerchant::Billing::Base.mode = Rails.env.production? ? :production : :test
|
39
40
|
```
|
40
41
|
|
41
42
|
Add
|
@@ -81,7 +82,8 @@ supercharged controllers: {charges: :charges, gateway_notifications: :gateway_no
|
|
81
82
|
Create model in app/models/charge.rb and inherit from Supercharged::Charge::Base
|
82
83
|
|
83
84
|
```ruby
|
84
|
-
class Charge <
|
85
|
+
class Charge < ActiveRecord::Base
|
86
|
+
include Supercharged::Charge::Base
|
85
87
|
# your custom code here
|
86
88
|
|
87
89
|
def approve(real_amount)
|
@@ -5,7 +5,7 @@ class @SuperchargedForm
|
|
5
5
|
|
6
6
|
@amount_input = @form.find("[role='charge-amount']")
|
7
7
|
@gateway_name_input = @form.find("[role='charge-gateway-name']")
|
8
|
-
@id_input =
|
8
|
+
@id_input = @form.find("[role='payment-form-order']")
|
9
9
|
|
10
10
|
@form.submit =>
|
11
11
|
valid = @startPayment()
|
@@ -39,7 +39,7 @@ class @SuperchargedForm
|
|
39
39
|
async: false,
|
40
40
|
data: {charge: charge_attributes},
|
41
41
|
success: (response) ->
|
42
|
-
options.success(response)
|
42
|
+
options.success(response.charge)
|
43
43
|
error: (jqXHR, status, errorThrown)=>
|
44
44
|
return unless jqXHR.status == 422
|
45
45
|
|
@@ -8,7 +8,7 @@ class Supercharged::ChargesController < ApplicationController
|
|
8
8
|
charge.user = current_user
|
9
9
|
|
10
10
|
if charge.save
|
11
|
-
render json: charge.as_json(only: [:id])
|
11
|
+
render json: { charge: charge.as_json(only: [:id]) }
|
12
12
|
else
|
13
13
|
render json: { errors: charge.errors }, status: :unprocessable_entity
|
14
14
|
end
|
@@ -9,10 +9,10 @@ class Supercharged::GatewayNotificationsController < ApplicationController
|
|
9
9
|
@notification = GatewayNotification.create!(params: params, gateway: params[:gateway], raw_post: request.raw_post)
|
10
10
|
@notification.logger = persistent_logger
|
11
11
|
|
12
|
-
error = if !@notification.
|
13
|
-
"not_completed"
|
14
|
-
elsif !@notification.acknowledge
|
12
|
+
error = if !@notification.acknowledge
|
15
13
|
"acknowledge_failed"
|
14
|
+
elsif !@notification.complete?
|
15
|
+
"not_completed"
|
16
16
|
elsif !@notification.charge
|
17
17
|
"charge_not_found"
|
18
18
|
end
|
@@ -23,7 +23,7 @@ class Supercharged::GatewayNotificationsController < ApplicationController
|
|
23
23
|
charge = @notification.charge
|
24
24
|
|
25
25
|
if charge && !charge.error?
|
26
|
-
@notification.charge.
|
26
|
+
@notification.charge.fail
|
27
27
|
@notification.charge.update_attribute(:error, error)
|
28
28
|
end
|
29
29
|
|
@@ -1,6 +1,5 @@
|
|
1
1
|
module Supercharged::ChargesHelper
|
2
2
|
# No order id while generating form. It will be added later via JS
|
3
|
-
# JS finds order input by this fake id because id and name will be integration specific
|
4
3
|
FAKE_ORDER_ID = "[payment_order_id]"
|
5
4
|
|
6
5
|
def charge_form_for(service_name, options = {}, &block)
|
@@ -12,10 +11,11 @@ module Supercharged::ChargesHelper
|
|
12
11
|
options = with_default_html_options(options)
|
13
12
|
|
14
13
|
account = options.delete(:account)
|
15
|
-
notify_url = gateways_result_url(service_name)
|
16
14
|
|
17
15
|
payment_service_for(FAKE_ORDER_ID, account, options) do |service|
|
18
|
-
service.notify_url
|
16
|
+
service.notify_url gateways_result_url(service_name)
|
17
|
+
service.return_url root_url
|
18
|
+
service.cancel_return_url new_charge_url
|
19
19
|
block.call(service)
|
20
20
|
end
|
21
21
|
end
|
@@ -40,9 +40,7 @@ module Supercharged::ChargesHelper
|
|
40
40
|
{
|
41
41
|
role: "charge-amount",
|
42
42
|
required: true,
|
43
|
-
|
44
|
-
min_value: Charge.min_amount
|
45
|
-
}
|
43
|
+
min: Charge.new(user: current_user).min_amount
|
46
44
|
}
|
47
45
|
end
|
48
46
|
|
data/app/models/charge.rb
CHANGED
@@ -12,7 +12,13 @@ class GatewayNotification < ActiveRecord::Base
|
|
12
12
|
attr_accessor :raw_post, :logger
|
13
13
|
|
14
14
|
def acknowledge
|
15
|
-
adapter.acknowledge
|
15
|
+
res = adapter.acknowledge
|
16
|
+
|
17
|
+
if charge_id.nil? && adapter.item_id
|
18
|
+
update_column(:charge_id, adapter.item_id)
|
19
|
+
end
|
20
|
+
|
21
|
+
res
|
16
22
|
end
|
17
23
|
|
18
24
|
def complete?
|
@@ -28,12 +34,14 @@ class GatewayNotification < ActiveRecord::Base
|
|
28
34
|
end
|
29
35
|
|
30
36
|
def approve
|
37
|
+
raise EmptyChargeIdError unless charge_id
|
38
|
+
|
31
39
|
logger.info "real amount = #{real_amount}"
|
32
40
|
charge.approve(real_amount) unless charge.ok?
|
33
41
|
end
|
34
42
|
|
35
43
|
def real_amount
|
36
|
-
|
44
|
+
adapter.gross
|
37
45
|
end
|
38
46
|
|
39
47
|
private
|
@@ -44,12 +52,9 @@ class GatewayNotification < ActiveRecord::Base
|
|
44
52
|
raise "Unknown integration '#{gateway}'"
|
45
53
|
end
|
46
54
|
|
47
|
-
def service
|
48
|
-
"ActiveMerchant::Billing::Integrations::#{gateway.classify}::Helper".classify.constantize
|
49
|
-
end
|
50
|
-
|
51
55
|
def set_charge_id
|
52
|
-
self.charge_id
|
56
|
+
self.charge_id ||= adapter.item_id
|
57
|
+
true
|
53
58
|
end
|
54
59
|
|
55
60
|
end
|
@@ -1,51 +1,52 @@
|
|
1
1
|
module Supercharged
|
2
2
|
module Charge
|
3
|
-
|
4
|
-
|
3
|
+
module Base
|
4
|
+
extend ActiveSupport::Concern
|
5
5
|
|
6
|
-
|
7
|
-
|
6
|
+
included do
|
7
|
+
self.table_name = "charges"
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
belongs_to :user
|
10
|
+
has_many :gateway_input_notifications
|
11
|
+
has_many :gateway_responses
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
model.class.min_amount
|
13
|
+
validates :amount, presence: true, numericality: {
|
14
|
+
greater_than_or_equal_to: :min_amount
|
16
15
|
}
|
17
|
-
}
|
18
16
|
|
19
|
-
|
20
|
-
|
17
|
+
scope :latest, ->{ order("created_at DESC") }
|
18
|
+
scope :by_gateway, ->(gateway_name) { where(gateway_name: gateway_name.to_s) }
|
21
19
|
|
22
|
-
|
23
|
-
|
20
|
+
state_machine :state, initial: :new do
|
21
|
+
# store_audit_trail
|
24
22
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
23
|
+
state :new
|
24
|
+
state :rejected
|
25
|
+
state :ok
|
26
|
+
state :error
|
29
27
|
|
30
|
-
|
31
|
-
|
32
|
-
|
28
|
+
event :set_ok do
|
29
|
+
transition [:new, :error, :pending] => :ok
|
30
|
+
end
|
33
31
|
|
34
|
-
|
35
|
-
|
36
|
-
|
32
|
+
event :set_failed do
|
33
|
+
transition [:new, :pending] => :error
|
34
|
+
end
|
37
35
|
|
38
|
-
|
39
|
-
|
40
|
-
|
36
|
+
event :reject do
|
37
|
+
transition [:new, :error, :pending] => :rejected
|
38
|
+
end
|
41
39
|
|
42
|
-
|
43
|
-
|
40
|
+
event :set_pending do
|
41
|
+
transition [:new, :error] => :pending
|
42
|
+
end
|
44
43
|
end
|
45
44
|
end
|
46
45
|
|
47
|
-
|
48
|
-
|
46
|
+
module ClassMethods
|
47
|
+
def with_token(token)
|
48
|
+
where(gateway_token: token).first
|
49
|
+
end
|
49
50
|
end
|
50
51
|
|
51
52
|
# require implicit amount from gateway, not from user
|
@@ -54,7 +55,12 @@ module Supercharged
|
|
54
55
|
set_ok!
|
55
56
|
end
|
56
57
|
|
57
|
-
def
|
58
|
+
def fail
|
59
|
+
self.state_event = "set_failed"
|
60
|
+
save(validate: false)
|
61
|
+
end
|
62
|
+
|
63
|
+
def min_amount
|
58
64
|
1
|
59
65
|
end
|
60
66
|
|
data/config/routes.rb
CHANGED
@@ -15,7 +15,7 @@ module ActionDispatch::Routing
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
|
18
|
+
post "gateways/:gateway/result" => "#{controllers[:gateway_notifications]}#create", as: :gateways_result
|
19
19
|
end
|
20
20
|
|
21
21
|
end
|
data/lib/supercharged/version.rb
CHANGED
data/test/fake_app.rb
CHANGED
@@ -10,6 +10,7 @@ app = Class.new(Rails::Application)
|
|
10
10
|
app.config.secret_token = "3b7cd727ee24e8444053437c36cc66c4"
|
11
11
|
app.config.session_store :cookie_store, :key => "_fakeapp_session"
|
12
12
|
app.config.active_support.deprecation = :log
|
13
|
+
app.config.eager_load = false
|
13
14
|
app.initialize!
|
14
15
|
|
15
16
|
Rails.application.routes.draw do
|
@@ -2,14 +2,14 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
describe Supercharged::ChargesController do
|
4
4
|
describe "create action" do
|
5
|
-
|
5
|
+
describe "authorized" do
|
6
6
|
let(:fake_user) { User.create! }
|
7
7
|
|
8
8
|
before do
|
9
9
|
Supercharged::ChargesController.any_instance.stubs(:current_user).returns(fake_user)
|
10
10
|
end
|
11
11
|
|
12
|
-
|
12
|
+
describe "correct conditions" do
|
13
13
|
it "response contains id in json" do
|
14
14
|
post :create, charge: { amount: 100 }
|
15
15
|
|
@@ -20,7 +20,7 @@ describe Supercharged::ChargesController do
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
-
|
23
|
+
describe "bad conditions" do
|
24
24
|
it "response contains errors in json" do
|
25
25
|
post :create, charge: { amount: 0 }
|
26
26
|
|
@@ -2,18 +2,18 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
describe Supercharged::GatewayNotificationsController do
|
4
4
|
describe "create" do
|
5
|
-
let(:charge) { Charge.create!(
|
5
|
+
let(:charge) { Charge.create!(user_id: 1, amount: 10) }
|
6
6
|
|
7
|
-
|
7
|
+
describe "authorized" do
|
8
8
|
let(:fake_user) { stub(id: 1) }
|
9
9
|
|
10
10
|
before do
|
11
11
|
GatewayNotification.any_instance.stubs(:current_user).returns(fake_user)
|
12
12
|
end
|
13
13
|
|
14
|
-
|
14
|
+
describe "correct conditions" do
|
15
15
|
it "works with good notification" do
|
16
|
-
adapter = stub(item_id: 1, "complete?" => true, acknowledge: true, charge: charge)
|
16
|
+
adapter = stub(item_id: 1, "complete?" => true, acknowledge: true, charge: charge, gross: 100)
|
17
17
|
|
18
18
|
GatewayNotification.any_instance.stubs(:adapter).returns(adapter)
|
19
19
|
|
@@ -26,7 +26,7 @@ describe Supercharged::GatewayNotificationsController do
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
-
|
29
|
+
describe "bad conditions" do
|
30
30
|
it "completed = false" do
|
31
31
|
adapter = stub(item_id: 1, "complete?" => false, acknowledge: true, charge: charge)
|
32
32
|
|
@@ -38,7 +38,7 @@ describe Supercharged::GatewayNotificationsController do
|
|
38
38
|
charge.state_name.must_equal :error
|
39
39
|
charge.error.must_equal "not_completed"
|
40
40
|
|
41
|
-
assert_response :
|
41
|
+
assert_response :found
|
42
42
|
end
|
43
43
|
|
44
44
|
it "acknowledge = false" do
|
@@ -52,12 +52,12 @@ describe Supercharged::GatewayNotificationsController do
|
|
52
52
|
charge.state_name.must_equal :error
|
53
53
|
charge.error.must_equal "acknowledge_failed"
|
54
54
|
|
55
|
-
assert_response :
|
55
|
+
assert_response :found
|
56
56
|
end
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
60
|
-
|
60
|
+
describe "without any payload params" do
|
61
61
|
it "returns bad_request" do
|
62
62
|
post :create, gateway: "paypal"
|
63
63
|
|
@@ -2,7 +2,9 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
class Supercharged::ChargesHelperTest < ActionView::TestCase
|
4
4
|
def test_min_value
|
5
|
-
|
5
|
+
self.stubs(:current_user).returns(User.new)
|
6
|
+
Charge.any_instance.stubs(:min_amount).returns(500)
|
7
|
+
field = charge_form_amount_field(sample_service)
|
6
8
|
field.must_include 'min="500"'
|
7
9
|
end
|
8
10
|
|
@@ -4,18 +4,20 @@ describe GatewayNotification do
|
|
4
4
|
describe "create" do
|
5
5
|
it "raise EmptyChargeId if charge_id = nil" do
|
6
6
|
->{
|
7
|
-
GatewayNotification.create!(gateway: "webmoney")
|
7
|
+
notification = GatewayNotification.create!(gateway: "webmoney")
|
8
|
+
notification.approve
|
8
9
|
}.must_raise GatewayNotification::EmptyChargeIdError
|
9
10
|
end
|
10
11
|
|
11
|
-
it "
|
12
|
+
it "populates params with result" do
|
12
13
|
gateway_notification = GatewayNotification.new
|
13
14
|
|
14
15
|
adapter = stub(item_id: 42)
|
15
16
|
gateway_notification.stubs(:adapter).returns(adapter)
|
16
17
|
|
17
18
|
gateway_notification.save!
|
19
|
+
|
18
20
|
gateway_notification.charge_id.must_equal 42
|
19
21
|
end
|
20
22
|
end
|
21
|
-
end
|
23
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -3,7 +3,6 @@ ENV["RAILS_ENV"] = "test"
|
|
3
3
|
require "minitest/autorun"
|
4
4
|
require "minitest/spec"
|
5
5
|
require "minitest/pride"
|
6
|
-
require "minitest-spec-context"
|
7
6
|
require "mocha/setup"
|
8
7
|
|
9
8
|
require 'rails'
|
@@ -15,7 +14,6 @@ require "minitest/rails"
|
|
15
14
|
|
16
15
|
require 'state_machine'
|
17
16
|
require 'state_machine-audit_trail'
|
18
|
-
require 'strong_parameters'
|
19
17
|
|
20
18
|
require "supercharged"
|
21
19
|
require "fake_app"
|
metadata
CHANGED
@@ -1,174 +1,125 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: supercharged
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
5
|
-
prerelease:
|
4
|
+
version: 2.1.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- divineforest
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-02-10 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rails
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - "~>"
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: '
|
19
|
+
version: '4'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
26
|
+
version: '4'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: state_machine
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ">="
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - ">="
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: state_machine-audit_trail
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - ">="
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - ">="
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: activemerchant
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - ">="
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: '0'
|
78
|
-
- !ruby/object:Gem::Dependency
|
79
|
-
name: strong_parameters
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
|
-
requirements:
|
83
|
-
- - ! '>='
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
version: '0'
|
86
|
-
type: :runtime
|
87
|
-
prerelease: false
|
88
|
-
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- - ! '>='
|
66
|
+
- - ">="
|
92
67
|
- !ruby/object:Gem::Version
|
93
68
|
version: '0'
|
94
69
|
- !ruby/object:Gem::Dependency
|
95
70
|
name: sqlite3
|
96
71
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
72
|
requirements:
|
99
|
-
- -
|
73
|
+
- - ">="
|
100
74
|
- !ruby/object:Gem::Version
|
101
75
|
version: '0'
|
102
76
|
type: :development
|
103
77
|
prerelease: false
|
104
78
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
79
|
requirements:
|
107
|
-
- -
|
80
|
+
- - ">="
|
108
81
|
- !ruby/object:Gem::Version
|
109
82
|
version: '0'
|
110
83
|
- !ruby/object:Gem::Dependency
|
111
84
|
name: minitest
|
112
85
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
|
-
requirements:
|
115
|
-
- - ~>
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '3.0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
|
-
requirements:
|
123
|
-
- - ~>
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: '3.0'
|
126
|
-
- !ruby/object:Gem::Dependency
|
127
|
-
name: minitest-spec-context
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
86
|
requirements:
|
131
|
-
- -
|
87
|
+
- - ">="
|
132
88
|
- !ruby/object:Gem::Version
|
133
89
|
version: '0'
|
134
90
|
type: :development
|
135
91
|
prerelease: false
|
136
92
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
93
|
requirements:
|
139
|
-
- -
|
94
|
+
- - ">="
|
140
95
|
- !ruby/object:Gem::Version
|
141
96
|
version: '0'
|
142
97
|
- !ruby/object:Gem::Dependency
|
143
98
|
name: minitest-rails
|
144
99
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
100
|
requirements:
|
147
|
-
- -
|
101
|
+
- - ">="
|
148
102
|
- !ruby/object:Gem::Version
|
149
103
|
version: '0'
|
150
104
|
type: :development
|
151
105
|
prerelease: false
|
152
106
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
107
|
requirements:
|
155
|
-
- -
|
108
|
+
- - ">="
|
156
109
|
- !ruby/object:Gem::Version
|
157
110
|
version: '0'
|
158
111
|
- !ruby/object:Gem::Dependency
|
159
112
|
name: mocha
|
160
113
|
requirement: !ruby/object:Gem::Requirement
|
161
|
-
none: false
|
162
114
|
requirements:
|
163
|
-
- -
|
115
|
+
- - ">="
|
164
116
|
- !ruby/object:Gem::Version
|
165
117
|
version: '0'
|
166
118
|
type: :development
|
167
119
|
prerelease: false
|
168
120
|
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
none: false
|
170
121
|
requirements:
|
171
|
-
- -
|
122
|
+
- - ">="
|
172
123
|
- !ruby/object:Gem::Version
|
173
124
|
version: '0'
|
174
125
|
description:
|
@@ -177,6 +128,9 @@ executables: []
|
|
177
128
|
extensions: []
|
178
129
|
extra_rdoc_files: []
|
179
130
|
files:
|
131
|
+
- MIT-LICENSE
|
132
|
+
- README.md
|
133
|
+
- Rakefile
|
180
134
|
- app/assets/javascripts/charge_form.js.coffee.erb
|
181
135
|
- app/assets/javascripts/supercharged.js
|
182
136
|
- app/controllers/supercharged/charges_controller.rb
|
@@ -192,13 +146,10 @@ files:
|
|
192
146
|
- config/routes.rb
|
193
147
|
- lib/generators/supercharged/migrations_generator.rb
|
194
148
|
- lib/generators/supercharged/templates/install_migration.rb
|
149
|
+
- lib/supercharged.rb
|
195
150
|
- lib/supercharged/activemerchant.rb
|
196
151
|
- lib/supercharged/helpers.rb
|
197
152
|
- lib/supercharged/version.rb
|
198
|
-
- lib/supercharged.rb
|
199
|
-
- MIT-LICENSE
|
200
|
-
- Rakefile
|
201
|
-
- README.md
|
202
153
|
- test/fake_app.rb
|
203
154
|
- test/supercharged/controllers/charges_controller_test.rb
|
204
155
|
- test/supercharged/controllers/gateway_notifications_controller_test.rb
|
@@ -208,33 +159,26 @@ files:
|
|
208
159
|
- test/test_helper.rb
|
209
160
|
homepage:
|
210
161
|
licenses: []
|
162
|
+
metadata: {}
|
211
163
|
post_install_message:
|
212
164
|
rdoc_options: []
|
213
165
|
require_paths:
|
214
166
|
- lib
|
215
167
|
required_ruby_version: !ruby/object:Gem::Requirement
|
216
|
-
none: false
|
217
168
|
requirements:
|
218
|
-
- -
|
169
|
+
- - ">="
|
219
170
|
- !ruby/object:Gem::Version
|
220
171
|
version: '0'
|
221
|
-
segments:
|
222
|
-
- 0
|
223
|
-
hash: -682491328917340782
|
224
172
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
225
|
-
none: false
|
226
173
|
requirements:
|
227
|
-
- -
|
174
|
+
- - ">="
|
228
175
|
- !ruby/object:Gem::Version
|
229
176
|
version: '0'
|
230
|
-
segments:
|
231
|
-
- 0
|
232
|
-
hash: -682491328917340782
|
233
177
|
requirements: []
|
234
178
|
rubyforge_project:
|
235
|
-
rubygems_version:
|
179
|
+
rubygems_version: 2.2.0
|
236
180
|
signing_key:
|
237
|
-
specification_version:
|
181
|
+
specification_version: 4
|
238
182
|
summary: MVC solution for charges in rails
|
239
183
|
test_files:
|
240
184
|
- test/fake_app.rb
|