proclaimer 0.2.0
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 +7 -0
- data/.gitignore +39 -0
- data/.travis.yml +6 -0
- data/Gemfile +7 -0
- data/Gemfile.lock +376 -0
- data/LICENSE +22 -0
- data/README.md +58 -0
- data/Rakefile +30 -0
- data/app/models/spree/order_decorator.rb +14 -0
- data/app/models/spree/order_updater_decorator.rb +14 -0
- data/app/models/spree/payment_decorator.rb +16 -0
- data/app/models/spree/refund_decorator.rb +14 -0
- data/app/models/spree/shipment_decorator.rb +24 -0
- data/bin/rails +7 -0
- data/bin/rake +16 -0
- data/lib/proclaimer/configuration.rb +24 -0
- data/lib/proclaimer/engine.rb +20 -0
- data/lib/proclaimer/version.rb +3 -0
- data/lib/proclaimer.rb +9 -0
- data/proclaimer.gemspec +32 -0
- data/spec/configuration_spec.rb +102 -0
- data/spec/models/spree/order_spec.rb +37 -0
- data/spec/models/spree/order_updater_spec.rb +28 -0
- data/spec/models/spree/payment_spec.rb +19 -0
- data/spec/models/spree/refund_spec.rb +35 -0
- data/spec/models/spree/shipment_spec.rb +58 -0
- data/spec/proclaimer_spec.rb +22 -0
- data/spec/spec_helper.rb +88 -0
- metadata +220 -0
@@ -0,0 +1,20 @@
|
|
1
|
+
module Proclaimer
|
2
|
+
class Engine < Rails::Engine
|
3
|
+
require "spree/core"
|
4
|
+
isolate_namespace Spree
|
5
|
+
engine_name "proclaimer"
|
6
|
+
|
7
|
+
# use rspec for tests
|
8
|
+
config.generators do |g|
|
9
|
+
g.test_framework :rspec
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.activate
|
13
|
+
Dir.glob(File.join(File.dirname(__FILE__), "../../app/**/*_decorator*.rb")) do |c|
|
14
|
+
Rails.configuration.cache_classes ? require(c) : load(c)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
config.to_prepare &method(:activate).to_proc
|
19
|
+
end
|
20
|
+
end
|
data/lib/proclaimer.rb
ADDED
data/proclaimer.gemspec
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require "./lib/proclaimer/version"
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.platform = Gem::Platform::RUBY
|
6
|
+
s.name = "proclaimer"
|
7
|
+
s.version = Proclaimer::VERSION
|
8
|
+
s.summary = "An easy, and extensible transactional event notification " +
|
9
|
+
"add on for Spree."
|
10
|
+
s.description = s.summary
|
11
|
+
s.required_ruby_version = ">= 2.2.0"
|
12
|
+
|
13
|
+
s.authors = ["Prem Sichanugrist", "Vincent Franco", "David Freerksen"]
|
14
|
+
s.homepage = "https://github.com/groundctrl/proclaimer"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.require_path = "lib"
|
19
|
+
s.requirements << "none"
|
20
|
+
|
21
|
+
s.add_dependency "spree_backend", "~> 3.0.0"
|
22
|
+
|
23
|
+
s.add_development_dependency "capybara", "~> 2.4"
|
24
|
+
s.add_development_dependency "coffee-rails"
|
25
|
+
s.add_development_dependency "database_cleaner"
|
26
|
+
s.add_development_dependency "factory_girl", "~> 4.5"
|
27
|
+
s.add_development_dependency "rspec-rails", "~> 3.1"
|
28
|
+
s.add_development_dependency "sass-rails", "~> 4.0.2"
|
29
|
+
s.add_development_dependency "simplecov"
|
30
|
+
s.add_development_dependency "sqlite3"
|
31
|
+
s.add_development_dependency "pry-byebug"
|
32
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "proclaimer/configuration"
|
3
|
+
|
4
|
+
RSpec.describe Proclaimer::Configuration do
|
5
|
+
before do
|
6
|
+
stub_const "PAYLOAD", Object.new
|
7
|
+
end
|
8
|
+
|
9
|
+
after do
|
10
|
+
ActiveSupport::Notifications.unsubscribe(/^spree\./)
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "#subscribe" do
|
14
|
+
context "subscription" do
|
15
|
+
it "supports subscribing to an event with given event name" do
|
16
|
+
event_name = nil
|
17
|
+
payload = nil
|
18
|
+
|
19
|
+
configuration.subscribe("order.complete") do |*args|
|
20
|
+
event_name = args.first
|
21
|
+
payload = args.second
|
22
|
+
end
|
23
|
+
|
24
|
+
trigger_event "spree.order.complete", PAYLOAD
|
25
|
+
|
26
|
+
expect(event_name).to eq "spree.order.complete"
|
27
|
+
expect(payload).to eq PAYLOAD
|
28
|
+
end
|
29
|
+
|
30
|
+
it "supports subscribing to any event starting with given string" do
|
31
|
+
event_name = nil
|
32
|
+
payload = nil
|
33
|
+
|
34
|
+
configuration.subscribe("order") do |*args|
|
35
|
+
event_name = args.first
|
36
|
+
payload = args.second
|
37
|
+
end
|
38
|
+
|
39
|
+
trigger_event "spree.order.complete", PAYLOAD
|
40
|
+
|
41
|
+
expect(event_name).to eq "spree.order.complete"
|
42
|
+
expect(payload).to eq PAYLOAD
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
context "callable" do
|
47
|
+
it "raises error if the given object does not respond to call" do
|
48
|
+
expect { configuration.subscribe("event", :nope) }.
|
49
|
+
to raise_error(ArgumentError, /call/)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
describe "#subscribe_all" do
|
55
|
+
context "subscription" do
|
56
|
+
it "subscribe to all spree events" do
|
57
|
+
event_name = nil
|
58
|
+
payload = nil
|
59
|
+
|
60
|
+
configuration.subscribe_all do |*args|
|
61
|
+
event_name = args.first
|
62
|
+
payload = args.second
|
63
|
+
end
|
64
|
+
|
65
|
+
trigger_event "spree.order.complete", PAYLOAD
|
66
|
+
|
67
|
+
expect(event_name).to eq "spree.order.complete"
|
68
|
+
expect(payload).to eq PAYLOAD
|
69
|
+
end
|
70
|
+
|
71
|
+
it "does not subscribe to non-spree event" do
|
72
|
+
event_name = nil
|
73
|
+
payload = nil
|
74
|
+
|
75
|
+
configuration.subscribe_all do |*args|
|
76
|
+
event_name = args.first
|
77
|
+
payload = args.second
|
78
|
+
end
|
79
|
+
|
80
|
+
trigger_event "some.other.event", {}
|
81
|
+
|
82
|
+
expect(event_name).to be_nil
|
83
|
+
expect(payload).to be_nil
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
context "callable" do
|
88
|
+
it "raises error if the given object does not respond to call" do
|
89
|
+
expect { configuration.subscribe_all(:nope) }.
|
90
|
+
to raise_error(ArgumentError, /call/)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
def configuration
|
96
|
+
Proclaimer::Configuration.new
|
97
|
+
end
|
98
|
+
|
99
|
+
def trigger_event(event_name, payload)
|
100
|
+
ActiveSupport::Notifications.instrument(event_name, payload)
|
101
|
+
end
|
102
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe Spree::Order do
|
4
|
+
before { stub_const("EMPTY_PAYLOAD", Object.new) }
|
5
|
+
|
6
|
+
context "when order is first created" do
|
7
|
+
it "does not instrument any order event" do
|
8
|
+
payload = EMPTY_PAYLOAD
|
9
|
+
|
10
|
+
ActiveSupport::Notifications.subscribed(
|
11
|
+
-> (*args) { payload = args.last },
|
12
|
+
/^spree\.order/
|
13
|
+
) do
|
14
|
+
create(:order)
|
15
|
+
|
16
|
+
expect(payload).to eq EMPTY_PAYLOAD
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
context "when order is complete" do
|
22
|
+
it "instruments order.complete event" do
|
23
|
+
payload = EMPTY_PAYLOAD
|
24
|
+
|
25
|
+
ActiveSupport::Notifications.subscribed(
|
26
|
+
-> (*args) { payload = args.last },
|
27
|
+
"spree.order.complete"
|
28
|
+
) do
|
29
|
+
order = create(:order_with_line_items, state: "confirm")
|
30
|
+
create(:payment, amount: order.total, order: order)
|
31
|
+
order.next!
|
32
|
+
|
33
|
+
expect(payload[:order]).to eq order
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
module Spree
|
4
|
+
RSpec.describe OrderUpdater, type: :model do
|
5
|
+
|
6
|
+
describe "#update_shipments_with_status_tracking" do
|
7
|
+
it "calls shipment#broadcast on shipments that have changed state" do
|
8
|
+
fake_shipments = [
|
9
|
+
fake_shipment_with_state('pending', 'ready'),
|
10
|
+
fake_shipment_with_state('pending')
|
11
|
+
]
|
12
|
+
fake_order = double(Order, shipments: fake_shipments)
|
13
|
+
updater = described_class.new(fake_order)
|
14
|
+
|
15
|
+
updater.update_shipments
|
16
|
+
|
17
|
+
expect(fake_shipments.first).to have_received(:broadcast_state)
|
18
|
+
expect(fake_shipments.last).not_to have_received(:broadcast_state)
|
19
|
+
end
|
20
|
+
|
21
|
+
def fake_shipment_with_state(*states)
|
22
|
+
spy(Shipment).tap do |shipment|
|
23
|
+
allow(shipment).to receive(:state).and_return(*states)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe Spree::Payment do
|
4
|
+
context "when payment is complete" do
|
5
|
+
it "instruments payment.complete event" do
|
6
|
+
payload = nil
|
7
|
+
|
8
|
+
ActiveSupport::Notifications.subscribed(
|
9
|
+
-> (*args) { payload = args.last },
|
10
|
+
"spree.payment.complete"
|
11
|
+
) do
|
12
|
+
payment = create(:payment)
|
13
|
+
payment.complete
|
14
|
+
|
15
|
+
expect(payload[:payment]).to eq payment
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Spree::Refund do
|
4
|
+
before { stub_const("EMPTY_PAYLOAD", Object.new) }
|
5
|
+
|
6
|
+
context "when refund have not been processed" do
|
7
|
+
it "does not instrument any refund event" do
|
8
|
+
payload = EMPTY_PAYLOAD
|
9
|
+
|
10
|
+
ActiveSupport::Notifications.subscribed(
|
11
|
+
-> (*args) { payload = args.last },
|
12
|
+
/^spree\.refund/
|
13
|
+
) do
|
14
|
+
build(:refund)
|
15
|
+
|
16
|
+
expect(payload).to eq EMPTY_PAYLOAD
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
context "when the refund has been processed" do
|
22
|
+
it "instruments refund.complete event" do
|
23
|
+
payload = EMPTY_PAYLOAD
|
24
|
+
|
25
|
+
ActiveSupport::Notifications.subscribed(
|
26
|
+
-> (*args) { payload = args.last },
|
27
|
+
"spree.refund.complete"
|
28
|
+
) do
|
29
|
+
refund = create(:refund, payment: create(:payment, amount: 100))
|
30
|
+
|
31
|
+
expect(payload[:refund]).to eq refund
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe Spree::Shipment do
|
4
|
+
context "when shipment is pending" do
|
5
|
+
it "instruments shipment.pending event" do
|
6
|
+
payload = nil
|
7
|
+
|
8
|
+
ActiveSupport::Notifications.subscribed(
|
9
|
+
-> (*args) { payload = args.last },
|
10
|
+
"spree.shipment.pending"
|
11
|
+
) do
|
12
|
+
shipment = create(:shipment)
|
13
|
+
|
14
|
+
expect(payload[:shipment]).to eq shipment
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
context "when shipment is ready" do
|
20
|
+
it "instruments shipment.ready event" do
|
21
|
+
shipment = create(:shipment)
|
22
|
+
allow(shipment).to receive(:determine_state) { 'ready' }
|
23
|
+
allow(ActiveSupport::Notifications).to receive(:instrument)
|
24
|
+
|
25
|
+
shipment.ready
|
26
|
+
|
27
|
+
expect(ActiveSupport::Notifications).
|
28
|
+
to have_received(:instrument).
|
29
|
+
with("spree.shipment.ready", shipment: shipment)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context "when shipment is canceled" do
|
34
|
+
it "instruments shipment.canceled event" do
|
35
|
+
shipment = create(:shipment)
|
36
|
+
allow(ActiveSupport::Notifications).to receive(:instrument)
|
37
|
+
|
38
|
+
shipment.cancel
|
39
|
+
|
40
|
+
expect(ActiveSupport::Notifications).
|
41
|
+
to have_received(:instrument).
|
42
|
+
with("spree.shipment.canceled", shipment: shipment)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
describe "#broadcast_state" do
|
47
|
+
it "instruments shipment.STATE event" do
|
48
|
+
shipment = build(:shipment, state: 'pending')
|
49
|
+
allow(ActiveSupport::Notifications).to receive(:instrument)
|
50
|
+
|
51
|
+
shipment.broadcast_state
|
52
|
+
|
53
|
+
expect(ActiveSupport::Notifications).
|
54
|
+
to have_received(:instrument).
|
55
|
+
with("spree.shipment.pending", shipment: shipment)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "proclaimer"
|
3
|
+
|
4
|
+
RSpec.describe Proclaimer do
|
5
|
+
describe "configure" do
|
6
|
+
it "initialize a configuration object and passing in the block" do
|
7
|
+
configuration = double(:configuration)
|
8
|
+
given_block = -> {}
|
9
|
+
received_block = nil
|
10
|
+
allow(Proclaimer::Configuration).
|
11
|
+
to receive(:new).and_return(configuration)
|
12
|
+
allow(configuration).to receive(:instance_eval) do |&block|
|
13
|
+
received_block = block
|
14
|
+
end
|
15
|
+
|
16
|
+
Proclaimer.configure(&given_block)
|
17
|
+
|
18
|
+
expect(configuration).to have_received(:instance_eval)
|
19
|
+
expect(received_block).to eq given_block
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
# Run Coverage report
|
2
|
+
require "simplecov"
|
3
|
+
SimpleCov.start do
|
4
|
+
add_filter "spec/dummy"
|
5
|
+
add_group "Controllers", "app/controllers"
|
6
|
+
add_group "Helpers", "app/helpers"
|
7
|
+
add_group "Mailers", "app/mailers"
|
8
|
+
add_group "Models", "app/models"
|
9
|
+
add_group "Views", "app/views"
|
10
|
+
add_group "Libraries", "lib"
|
11
|
+
end
|
12
|
+
|
13
|
+
# Configure Rails Environment
|
14
|
+
ENV["RAILS_ENV"] = "test"
|
15
|
+
|
16
|
+
require File.expand_path("../dummy/config/environment.rb", __FILE__)
|
17
|
+
|
18
|
+
require "rspec/rails"
|
19
|
+
require "database_cleaner"
|
20
|
+
require "ffaker"
|
21
|
+
|
22
|
+
# Requires supporting ruby files with custom matchers and macros, etc,
|
23
|
+
# in spec/support/ and its subdirectories.
|
24
|
+
Dir[File.join(File.dirname(__FILE__), "support/**/*.rb")].each { |f| require f }
|
25
|
+
|
26
|
+
# Requires factories and other useful helpers defined in spree_core.
|
27
|
+
require "spree/testing_support/authorization_helpers"
|
28
|
+
require "spree/testing_support/capybara_ext"
|
29
|
+
require "spree/testing_support/controller_requests"
|
30
|
+
require "spree/testing_support/factories"
|
31
|
+
require "spree/testing_support/url_helpers"
|
32
|
+
|
33
|
+
RSpec.configure do |config|
|
34
|
+
config.include FactoryGirl::Syntax::Methods
|
35
|
+
|
36
|
+
# Infer an example group"s spec type from the file location.
|
37
|
+
config.infer_spec_type_from_file_location!
|
38
|
+
|
39
|
+
# == URL Helpers
|
40
|
+
#
|
41
|
+
# Allows access to Spree"s routes in specs:
|
42
|
+
#
|
43
|
+
# visit spree.admin_path
|
44
|
+
# current_path.should eql(spree.products_path)
|
45
|
+
config.include Spree::TestingSupport::UrlHelpers
|
46
|
+
|
47
|
+
# == Mock Framework
|
48
|
+
#
|
49
|
+
# If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
|
50
|
+
#
|
51
|
+
# config.mock_with :mocha
|
52
|
+
# config.mock_with :flexmock
|
53
|
+
# config.mock_with :rr
|
54
|
+
config.mock_with :rspec
|
55
|
+
config.color = true
|
56
|
+
|
57
|
+
# Remove this line if you"re not using ActiveRecord or ActiveRecord fixtures
|
58
|
+
config.fixture_path = "#{::Rails.root}/spec/fixtures"
|
59
|
+
|
60
|
+
# Capybara javascript drivers require transactional fixtures set to false, and we use DatabaseCleaner
|
61
|
+
# to cleanup after each test instead. Without transactional fixtures set to false the records created
|
62
|
+
# to setup a test will be unavailable to the browser, which runs under a separate server instance.
|
63
|
+
config.use_transactional_fixtures = false
|
64
|
+
|
65
|
+
# Ensure Suite is set to use transactions for speed.
|
66
|
+
config.before :suite do
|
67
|
+
DatabaseCleaner.strategy = :transaction
|
68
|
+
DatabaseCleaner.clean_with :truncation
|
69
|
+
end
|
70
|
+
|
71
|
+
# Before each spec check if it is a Javascript test and switch between using database transactions or not where necessary.
|
72
|
+
config.before :each do
|
73
|
+
DatabaseCleaner.strategy = RSpec.current_example.metadata[:js] ? :truncation : :transaction
|
74
|
+
DatabaseCleaner.start
|
75
|
+
end
|
76
|
+
|
77
|
+
# After each spec clean the database.
|
78
|
+
config.after :each do
|
79
|
+
DatabaseCleaner.clean
|
80
|
+
end
|
81
|
+
|
82
|
+
config.fail_fast = ENV["FAIL_FAST"] || false
|
83
|
+
config.order = "random"
|
84
|
+
|
85
|
+
# Include helpers for controller test
|
86
|
+
config.include Spree::TestingSupport::ControllerRequests, type: :controller
|
87
|
+
config.include Devise::TestHelpers, type: :controller
|
88
|
+
end
|
metadata
ADDED
@@ -0,0 +1,220 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: proclaimer
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Prem Sichanugrist
|
8
|
+
- Vincent Franco
|
9
|
+
- David Freerksen
|
10
|
+
autorequire:
|
11
|
+
bindir: bin
|
12
|
+
cert_chain: []
|
13
|
+
date: 2015-10-06 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: spree_backend
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - "~>"
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 3.0.0
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - "~>"
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: 3.0.0
|
29
|
+
- !ruby/object:Gem::Dependency
|
30
|
+
name: capybara
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - "~>"
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '2.4'
|
36
|
+
type: :development
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - "~>"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '2.4'
|
43
|
+
- !ruby/object:Gem::Dependency
|
44
|
+
name: coffee-rails
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '0'
|
50
|
+
type: :development
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0'
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: database_cleaner
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0'
|
64
|
+
type: :development
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: factory_girl
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - "~>"
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '4.5'
|
78
|
+
type: :development
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - "~>"
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '4.5'
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: rspec-rails
|
87
|
+
requirement: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - "~>"
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '3.1'
|
92
|
+
type: :development
|
93
|
+
prerelease: false
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - "~>"
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '3.1'
|
99
|
+
- !ruby/object:Gem::Dependency
|
100
|
+
name: sass-rails
|
101
|
+
requirement: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - "~>"
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: 4.0.2
|
106
|
+
type: :development
|
107
|
+
prerelease: false
|
108
|
+
version_requirements: !ruby/object:Gem::Requirement
|
109
|
+
requirements:
|
110
|
+
- - "~>"
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: 4.0.2
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: simplecov
|
115
|
+
requirement: !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - ">="
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '0'
|
120
|
+
type: :development
|
121
|
+
prerelease: false
|
122
|
+
version_requirements: !ruby/object:Gem::Requirement
|
123
|
+
requirements:
|
124
|
+
- - ">="
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '0'
|
127
|
+
- !ruby/object:Gem::Dependency
|
128
|
+
name: sqlite3
|
129
|
+
requirement: !ruby/object:Gem::Requirement
|
130
|
+
requirements:
|
131
|
+
- - ">="
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '0'
|
134
|
+
type: :development
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
requirements:
|
138
|
+
- - ">="
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
version: '0'
|
141
|
+
- !ruby/object:Gem::Dependency
|
142
|
+
name: pry-byebug
|
143
|
+
requirement: !ruby/object:Gem::Requirement
|
144
|
+
requirements:
|
145
|
+
- - ">="
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: '0'
|
148
|
+
type: :development
|
149
|
+
prerelease: false
|
150
|
+
version_requirements: !ruby/object:Gem::Requirement
|
151
|
+
requirements:
|
152
|
+
- - ">="
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
version: '0'
|
155
|
+
description: An easy, and extensible transactional event notification add on for Spree.
|
156
|
+
email:
|
157
|
+
executables: []
|
158
|
+
extensions: []
|
159
|
+
extra_rdoc_files: []
|
160
|
+
files:
|
161
|
+
- ".gitignore"
|
162
|
+
- ".travis.yml"
|
163
|
+
- Gemfile
|
164
|
+
- Gemfile.lock
|
165
|
+
- LICENSE
|
166
|
+
- README.md
|
167
|
+
- Rakefile
|
168
|
+
- app/models/spree/order_decorator.rb
|
169
|
+
- app/models/spree/order_updater_decorator.rb
|
170
|
+
- app/models/spree/payment_decorator.rb
|
171
|
+
- app/models/spree/refund_decorator.rb
|
172
|
+
- app/models/spree/shipment_decorator.rb
|
173
|
+
- bin/rails
|
174
|
+
- bin/rake
|
175
|
+
- lib/proclaimer.rb
|
176
|
+
- lib/proclaimer/configuration.rb
|
177
|
+
- lib/proclaimer/engine.rb
|
178
|
+
- lib/proclaimer/version.rb
|
179
|
+
- proclaimer.gemspec
|
180
|
+
- spec/configuration_spec.rb
|
181
|
+
- spec/models/spree/order_spec.rb
|
182
|
+
- spec/models/spree/order_updater_spec.rb
|
183
|
+
- spec/models/spree/payment_spec.rb
|
184
|
+
- spec/models/spree/refund_spec.rb
|
185
|
+
- spec/models/spree/shipment_spec.rb
|
186
|
+
- spec/proclaimer_spec.rb
|
187
|
+
- spec/spec_helper.rb
|
188
|
+
homepage: https://github.com/groundctrl/proclaimer
|
189
|
+
licenses: []
|
190
|
+
metadata: {}
|
191
|
+
post_install_message:
|
192
|
+
rdoc_options: []
|
193
|
+
require_paths:
|
194
|
+
- lib
|
195
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
196
|
+
requirements:
|
197
|
+
- - ">="
|
198
|
+
- !ruby/object:Gem::Version
|
199
|
+
version: 2.2.0
|
200
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
201
|
+
requirements:
|
202
|
+
- - ">="
|
203
|
+
- !ruby/object:Gem::Version
|
204
|
+
version: '0'
|
205
|
+
requirements:
|
206
|
+
- none
|
207
|
+
rubyforge_project:
|
208
|
+
rubygems_version: 2.4.5
|
209
|
+
signing_key:
|
210
|
+
specification_version: 4
|
211
|
+
summary: An easy, and extensible transactional event notification add on for Spree.
|
212
|
+
test_files:
|
213
|
+
- spec/configuration_spec.rb
|
214
|
+
- spec/models/spree/order_spec.rb
|
215
|
+
- spec/models/spree/order_updater_spec.rb
|
216
|
+
- spec/models/spree/payment_spec.rb
|
217
|
+
- spec/models/spree/refund_spec.rb
|
218
|
+
- spec/models/spree/shipment_spec.rb
|
219
|
+
- spec/proclaimer_spec.rb
|
220
|
+
- spec/spec_helper.rb
|