Class: Tomo::Configuration::PluginsRegistry::FileResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/tomo/configuration/plugins_registry/file_resolver.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path) ⇒ FileResolver

Returns a new instance of FileResolver.



10
11
12
# File 'lib/tomo/configuration/plugins_registry/file_resolver.rb', line 10

def initialize(path)
  @path = path
end

Class Method Details

.resolve(path) ⇒ Object



6
7
8
# File 'lib/tomo/configuration/plugins_registry/file_resolver.rb', line 6

def self.resolve(path)
  new(path).plugin_module
end

Instance Method Details

#plugin_moduleObject



14
15
16
17
18
19
20
21
22
23
# File 'lib/tomo/configuration/plugins_registry/file_resolver.rb', line 14

def plugin_module
  raise_file_not_found(path) unless File.file?(path)

  Tomo.logger.debug("Loading plugin from #{path.inspect}")
  script = File.read(path)
  plugin = define_anonymous_plugin_class
  plugin.class_eval(script, path.to_s, 1)

  plugin
end