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

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