Class: RgGen::Core::Builder::PluginManager
- Defined in:
- lib/rggen/core/builder/plugin_manager.rb
Instance Method Summary collapse
- #activate_plugin_by_name(plugin_name) ⇒ Object
- #activate_plugins ⇒ Object
-
#initialize(builder) ⇒ PluginManager
constructor
A new instance of PluginManager.
- #load_plugin(path_or_name, version = nil) ⇒ Object
- #load_plugins(plugins, no_default_plugins, activation = true) ⇒ Object
- #setup_plugin(plugin_name) ⇒ Object
- #update_plugin(plugin_name) ⇒ Object
- #version_info ⇒ Object
Constructor Details
#initialize(builder) ⇒ PluginManager
Returns a new instance of PluginManager.
59 60 61 62 |
# File 'lib/rggen/core/builder/plugin_manager.rb', line 59 def initialize(builder) @builder = builder @plugins = [] end |
Instance Method Details
#activate_plugin_by_name(plugin_name) ⇒ Object
92 93 94 95 96 97 98 |
# File 'lib/rggen/core/builder/plugin_manager.rb', line 92 def activate_plugin_by_name(plugin_name) find_plugin(plugin_name) &.then do |plugin| plugin.activate(@builder) plugin.activate_additionally(@builder) end end |
#activate_plugins ⇒ Object
87 88 89 90 |
# File 'lib/rggen/core/builder/plugin_manager.rb', line 87 def activate_plugins do_normal_activation do_addtional_activation end |
#load_plugin(path_or_name, version = nil) ⇒ Object
64 65 66 67 |
# File 'lib/rggen/core/builder/plugin_manager.rb', line 64 def load_plugin(path_or_name, version = nil) info = PluginInfo.parse(path_or_name, version) read_plugin_file(info) end |
#load_plugins(plugins, no_default_plugins, activation = true) ⇒ Object
69 70 71 72 73 74 |
# File 'lib/rggen/core/builder/plugin_manager.rb', line 69 def load_plugins(plugins, no_default_plugins, activation = true) RgGen.builder(@builder) merge_plugins(plugins, no_default_plugins) .each { |plugin| load_plugin(*plugin) } activation && activate_plugins end |
#setup_plugin(plugin_name) ⇒ Object
76 77 78 |
# File 'lib/rggen/core/builder/plugin_manager.rb', line 76 def setup_plugin(plugin_name, &) @plugins << PluginSpec.new(plugin_name, &) end |
#update_plugin(plugin_name) ⇒ Object
80 81 82 83 84 85 |
# File 'lib/rggen/core/builder/plugin_manager.rb', line 80 def update_plugin(plugin_name) plugin = find_plugin(plugin_name) || (raise PluginError.new("unknown plugin: #{plugin_name}")) block_given? && yield(plugin) end |
#version_info ⇒ Object
100 101 102 |
# File 'lib/rggen/core/builder/plugin_manager.rb', line 100 def version_info @plugins.map(&:version_info) end |