Module: Mygen::Plugins
- Defined in:
- lib/mygen/plugins.rb,
lib/mygen/plugins/mygen_generator.rb
Overview
Load plugins from a dir (default to $HOME/.mygen/plugins) Add all subdirs to $LOAD_PATH, and get ancestors of the generator class And register them in the myg shell command
Defined Under Namespace
Classes: MygenGenerator
Class Method Summary collapse
- .load(path = File.join( ENV['HOME'], ".mygen", "plugins")) ⇒ Object
- .register_plugin(plugin) ⇒ Object
Class Method Details
.load(path = File.join( ENV['HOME'], ".mygen", "plugins")) ⇒ Object
8 9 10 11 12 13 14 15 |
# File 'lib/mygen/plugins.rb', line 8 def self.load(path = File.join( ENV['HOME'], ".mygen", "plugins")) path = path.gsub /\\/, '/' dirs = Dir.glob(File.join(path, "**/*.rb")) dirs.each do |d| register_plugin(d) end Generator.descendants end |
.register_plugin(plugin) ⇒ Object
17 18 19 20 21 22 |
# File 'lib/mygen/plugins.rb', line 17 def self.register_plugin(plugin) dir = File.dirname(plugin) $LOAD_PATH.unshift(dir) unless $LOAD_PATH.include?(dir) klass = File.basename(plugin, '.rb').downcase require klass end |