lib/spina/plugin.rb in spina-0.8.3 vs lib/spina/plugin.rb in spina-0.9.0
- old
+ new
@@ -1,10 +1,28 @@
module Spina
class Plugin
- attr_accessor :name, :config
+ attr_accessor :name, :namespace
- def to_s
- name
+ class << self
+
+ def all
+ ::Spina::PLUGINS
+ end
+
+ def find_by_name(name)
+ all.find { |plugin| plugin.name == name }
+ end
+
+ def register
+ plugin = new
+ yield plugin
+ raise 'Missing plugin name' if plugin.name.nil?
+ raise 'Missing plugin namespace' if plugin.namespace.nil?
+ all << plugin
+ plugin
+ end
+
end
+
end
end