Module: Syosset::Plugins::Base::Registry
- Defined in:
- lib/syosset/plugins/base/registry.rb
Constant Summary collapse
- @@plugins =
[]
- @@callbacks =
{on_register: [], on_enable: [], on_disable: []}
Class Method Summary collapse
- .disable(plugin_class, plugable) ⇒ Object
- .enable(plugin_class, plugable) ⇒ Object
- .enabled?(plugin_class, plugable) ⇒ Boolean
- .on_disable(&callback) ⇒ Object
- .on_enable(&callback) ⇒ Object
- .on_register(&callback) ⇒ Object
- .register(klass, options = {}) ⇒ Object
Class Method Details
.disable(plugin_class, plugable) ⇒ Object
27 28 29 30 31 32 |
# File 'lib/syosset/plugins/base/registry.rb', line 27 def self.disable plugin_class, plugable raise "Plugin must include Syosset::Plugins::Base::Plugin" unless plugin_class.include? Syosset::Plugins::Base::Plugin raise "Plugable must include Concerns::Plugable" unless plugable.class.include? Concerns::Plugable plugable.enabled_plugins.delete(plugin_class.to_s) @@callbacks[:on_disable].each {|x| x.call(plugin_class) } if plugable.save end |
.enable(plugin_class, plugable) ⇒ Object
20 21 22 23 24 25 |
# File 'lib/syosset/plugins/base/registry.rb', line 20 def self.enable plugin_class, plugable raise "Plugin must include Syosset::Plugins::Base::Plugin" unless plugin_class.include? Syosset::Plugins::Base::Plugin raise "Plugable must include Concerns::Plugable" unless plugable.class.include? Concerns::Plugable plugable.enabled_plugins << plugin_class.to_s @@callbacks[:on_enable].each {|x| x.call(plugin_class) } if plugable.save end |
.enabled?(plugin_class, plugable) ⇒ Boolean
14 15 16 17 18 |
# File 'lib/syosset/plugins/base/registry.rb', line 14 def self.enabled? plugin_class, plugable raise "Plugin must include Syosset::Plugins::Base::Plugin" unless plugin_class.include? Syosset::Plugins::Base::Plugin raise "Plugable must include Concerns::Plugable" unless plugable.class.include? Concerns::Plugable plugable.enabled_plugins.include? plugin_class.to_s end |
.on_disable(&callback) ⇒ Object
42 43 44 |
# File 'lib/syosset/plugins/base/registry.rb', line 42 def self.on_disable(&callback) @@callbacks[:on_disable] << callback end |
.on_enable(&callback) ⇒ Object
38 39 40 |
# File 'lib/syosset/plugins/base/registry.rb', line 38 def self.on_enable(&callback) @@callbacks[:on_enable] << callback end |
.on_register(&callback) ⇒ Object
34 35 36 |
# File 'lib/syosset/plugins/base/registry.rb', line 34 def self.on_register(&callback) @@callbacks[:on_register] << callback end |
.register(klass, options = {}) ⇒ Object
9 10 11 12 |
# File 'lib/syosset/plugins/base/registry.rb', line 9 def self.register(klass, = {}) @@plugins << [klass, ] @@callbacks[:on_register].each {|x| x.call } end |