Class: Reek::VerifierExtensionManager
- Defined in:
- lib/reek/verifier_extension_manager.rb
Overview
Manage verifier extention Load new verifier extention and keep the instance, so later when we need the same extention we can recall from cache.
Constant Summary collapse
- @@verifier_extensions =
{}
Class Method Summary collapse
- .accepted?(p_extension_scripts, p_context, p_variable) ⇒ Boolean
- .exists?(p_extension_script) ⇒ Boolean
- .find(p_extension_script) ⇒ Object
- .find_or_initiate_extension(p_extension_script) ⇒ Object
- .initiate_extension!(p_extension_script) ⇒ Object
Class Method Details
.accepted?(p_extension_scripts, p_context, p_variable) ⇒ Boolean
13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/reek/verifier_extension_manager.rb', line 13 def self.accepted?(p_extension_scripts, p_context, p_variable) p_extension_scripts.each do |extension_script| extension = find_or_initiate_extension(extension_script) if extension accepted, = extension.accepted?(p_context, p_variable) if !accepted return false, end end end return true, nil end |
.exists?(p_extension_script) ⇒ Boolean
39 40 41 |
# File 'lib/reek/verifier_extension_manager.rb', line 39 def self.exists?(p_extension_script) @@verifier_extensions.include?(p_extension_script) end |
.find(p_extension_script) ⇒ Object
35 36 37 |
# File 'lib/reek/verifier_extension_manager.rb', line 35 def self.find(p_extension_script) @@verifier_extensions[p_extension_script] end |
.find_or_initiate_extension(p_extension_script) ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/reek/verifier_extension_manager.rb', line 27 def self.find_or_initiate_extension(p_extension_script) if !exists?(p_extension_script) initiate_extension!(p_extension_script) end return find(p_extension_script) end |
.initiate_extension!(p_extension_script) ⇒ Object
43 44 45 46 47 48 49 50 |
# File 'lib/reek/verifier_extension_manager.rb', line 43 def self.initiate_extension!(p_extension_script) require p_extension_script # detect class name extension_class = p_extension_script.split(File::SEPARATOR). last.split(".").first.camelize.constantize @@verifier_extensions[p_extension_script] = extension_class.new end |