Class: SemVerComponents::Plugins
- Inherits:
-
Object
- Object
- SemVerComponents::Plugins
- Defined in:
- lib/sem_ver_components/plugins.rb
Overview
Loader of plugin classes available in the plugin directories
Instance Method Summary collapse
-
#[](plugin_name) ⇒ Class
Get a plugin class.
-
#initialize(plugins_type) ⇒ Plugins
constructor
Constructor.
-
#list ⇒ Array<Symbol>
List available plugin names.
Constructor Details
#initialize(plugins_type) ⇒ Plugins
Constructor
7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/sem_ver_components/plugins.rb', line 7 def initialize(plugins_type) @plugins_type = plugins_type @plugins = Dir.glob("#{__dir__}/#{plugins_type}/*.rb").to_h do |plugin_file| plugin_name = File.basename(plugin_file, '.rb').to_sym require "#{__dir__}/#{plugins_type}/#{plugin_name}.rb" [ plugin_name, SemVerComponents .const_get(plugins_type.to_s.split('_').collect(&:capitalize).join.to_sym) .const_get(plugin_name.to_s.split('_').collect(&:capitalize).join.to_sym) ] end end |
Instance Method Details
#[](plugin_name) ⇒ Class
Get a plugin class
32 33 34 |
# File 'lib/sem_ver_components/plugins.rb', line 32 def [](plugin_name) @plugins[plugin_name] end |
#list ⇒ Array<Symbol>
List available plugin names
24 25 26 |
# File 'lib/sem_ver_components/plugins.rb', line 24 def list @plugins.keys end |