Class: Auto::Plugins
- Inherits:
-
Object
- Object
- Auto::Plugins
- Defined in:
- lib/auto/plugins.rb
Defined Under Namespace
Classes: Plugin
Constant Summary collapse
- @@directories =
[ Gem.dir + "/gems", "~/.auto", "#{File.dirname(__FILE__)}/../../vendor/plugins" ]
- @@plugins =
nil
Class Method Summary collapse
-
.add(path) ⇒ Object
Add a directory to the plugin load paths.
-
.libraries ⇒ Object
Returns an array of library file paths.
-
.modules ⇒ Object
Returns an array of modules.
-
.plugins ⇒ Object
Returns an array of Plugin instances.
-
.tasks(task = nil) ⇒ Object
Returns a sorted array of hashes that describe tasks.
Class Method Details
.add(path) ⇒ Object
Add a directory to the plugin load paths.
18 19 20 21 22 23 |
# File 'lib/auto/plugins.rb', line 18 def add(path) @@directories = [] if $testing @@directories << path @@directories.uniq! @@plugins = nil end |
.libraries ⇒ Object
Returns an array of library file paths.
39 40 41 |
# File 'lib/auto/plugins.rb', line 39 def libraries collector { |plugin| plugin.library } end |
.modules ⇒ Object
Returns an array of modules.
44 45 46 |
# File 'lib/auto/plugins.rb', line 44 def modules collector { |plugin| plugin.module } end |
.plugins ⇒ Object
Returns an array of Plugin instances.
26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/auto/plugins.rb', line 26 def plugins return @@plugins if @@plugins directories = @@directories.collect do |d| File.("#{d}/*auto-*/") end @@plugins = Dir[*directories].collect do |d| Plugin.new(d) end @@plugins.compact! @@plugins end |
.tasks(task = nil) ⇒ Object
Returns a sorted array of hashes that describe tasks. Returns a specific task with an optional task parameter (string, ‘task:name’).
50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/auto/plugins.rb', line 50 def tasks(task=nil) if task tasks.select { |t| t[:name] == task.downcase }.first else t = collector { |plugin| plugin.tasks } t = t.flatten t.sort do |a, b| a[:name].gsub(':', '0') <=> b[:name].gsub(':', '0') end end end |