Skip to content

Commit ad5c7ff

Browse files
Fixing specs
1 parent 9c27c02 commit ad5c7ff

File tree

5 files changed

+12
-99
lines changed

5 files changed

+12
-99
lines changed

lib/resol/plugins.rb

+6-6
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ module Resol
66
module Plugins
77
PLUGINS_PATH = Pathname("resol/plugins")
88
class Manager
9+
def self.resolve_module(module_name)
10+
Plugins.const_get(module_name)
11+
end
12+
913
def initialize
1014
self.allowed_classes = resolve_allowed_classes
1115
self.plugins = []
@@ -14,7 +18,7 @@ def initialize
1418
def plugin(caller_class, plugin_name)
1519
plugin_name = plugin_name.to_s
1620

17-
return if allowed_classes.exclude?(caller_class)
21+
return unless allowed_classes.include?(caller_class)
1822
return if plugins.include?(plugin_name)
1923

2024
plugin_module = find_plugin_module(plugin_name)
@@ -39,15 +43,11 @@ def resolve_allowed_classes
3943

4044
def find_plugin_module(plugin_name)
4145
require PLUGINS_PATH.join(plugin_name)
42-
resolve_module(classify_plugin_name(plugin_name))
46+
self.class.resolve_module(classify_plugin_name(plugin_name))
4347
rescue LoadError, NameError => e
4448
raise ArgumentError, "Failed to load plugin '#{plugin_name}': #{e.message}"
4549
end
4650

47-
def resolve_module(module_name)
48-
Plugins.const_get(module_name)
49-
end
50-
5151
def classify_plugin_name(string)
5252
string.split(/_|-/).map!(&:capitalize).join
5353
end

lib/resol/result.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# frozen_string_literal: true
1+
1# frozen_string_literal: true
22

33
module Resol
44
class UnwrapError < StandardError; end

spec/initializers_spec.rb

-83
This file was deleted.

spec/service_spec.rb

+4-3
Original file line numberDiff line numberDiff line change
@@ -314,10 +314,11 @@ def call
314314
context "when install plugin on the child service class" do
315315
let(:child_service) { Class.new(Resol::Service) }
316316

317-
let(:error_message) { "can load plugins only on base Resol::Service" }
317+
it "just skips installation" do
318+
child_service.plugin(:dummy)
319+
manager = child_service.send(:manager)
318320

319-
it "raises error" do
320-
expect { child_service.plugin(:dump) }.to raise_error(ArgumentError, error_message)
321+
expect(manager.send(:plugins)).to eq([])
321322
end
322323
end
323324

spec/spec_helper.rb

+1-6
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
require "resol/plugins/dummy"
3333

3434
Resol::DependencyContainer.enable_stubs!
35+
Resol.config.send(:data=, { classes_allowed_to_patch: ["Resol::Service", "ReturnEngineService"] })
3536

3637
class SmartService < Resol::Service
3738
inject_initializer! :smartcore_injector
@@ -52,10 +53,4 @@ class ReturnEngineService < Resol::Service
5253

5354
config.order = :random
5455
Kernel.srand config.seed
55-
56-
config.around do |ex|
57-
applied_classes = Resol::Initializers.send(:applied_classes).dup
58-
ex.call
59-
Resol::Initializers.send(:applied_classes=, applied_classes)
60-
end
6156
end

0 commit comments

Comments
 (0)