Class: Ghaki::Registry::Engine
- Inherits:
-
Object
- Object
- Ghaki::Registry::Engine
- Includes:
- Singleton
- Defined in:
- lib/ghaki/registry/engine.rb
Instance Attribute Summary collapse
-
#features ⇒ Object
readonly
Returns the value of attribute features.
Instance Method Summary collapse
- #add_plugin(feat, plug, klass) ⇒ Object
- #assert_feature!(name) ⇒ Object
- #assert_plugin!(feat, plug) ⇒ Object
- #clear_features ⇒ Object
- #clear_plugins(feat) ⇒ Object
- #disable_feature(name) ⇒ Object
- #disable_plugin(feat, plug) ⇒ Object
- #enable_feature(name) ⇒ Object
- #enable_plugin(feat, plug) ⇒ Object
- #enabled_feature?(name) ⇒ Boolean
- #enabled_plugin?(feat, plug) ⇒ Boolean
- #factory_create(feat, plug, *args) ⇒ Object
- #failed_plugin?(feat, plug) ⇒ Boolean
- #get_feature(name) ⇒ Object
- #get_plugin(feat, plug) ⇒ Object
- #has_feature?(name) ⇒ Boolean
- #has_plugin?(feat, plug) ⇒ Boolean
-
#initialize ⇒ Engine
constructor
A new instance of Engine.
- #load_plugin(feat, plug, lib_path) ⇒ Object
- #plugin_failure(feat, plug) ⇒ Object
- #plugins(feat) ⇒ Object
- #remove_feature(name) ⇒ Object
- #remove_plugin(feat, plug) ⇒ Object
- #reserve_feature(name) ⇒ Object
Constructor Details
#initialize ⇒ Engine
Returns a new instance of Engine.
15 16 17 |
# File 'lib/ghaki/registry/engine.rb', line 15 def initialize clear_features end |
Instance Attribute Details
#features ⇒ Object (readonly)
Returns the value of attribute features.
12 13 14 |
# File 'lib/ghaki/registry/engine.rb', line 12 def features @features end |
Instance Method Details
#add_plugin(feat, plug, klass) ⇒ Object
55 56 57 |
# File 'lib/ghaki/registry/engine.rb', line 55 def add_plugin feat, plug, klass reserve_feature(feat).add_plugin( plug, klass ) end |
#assert_feature!(name) ⇒ Object
32 33 34 |
# File 'lib/ghaki/registry/engine.rb', line 32 def assert_feature! name raise FeatureNotFoundError.new(name) unless has_feature? name end |
#assert_plugin!(feat, plug) ⇒ Object
61 62 63 |
# File 'lib/ghaki/registry/engine.rb', line 61 def assert_plugin! feat, plug get_feature(feat).assert_plugin!(plug) end |
#clear_features ⇒ Object
18 19 20 |
# File 'lib/ghaki/registry/engine.rb', line 18 def clear_features @features = {} end |
#clear_plugins(feat) ⇒ Object
67 68 69 |
# File 'lib/ghaki/registry/engine.rb', line 67 def clear_plugins feat get_feature(feat).clear_plugins if has_feature?(feat) end |
#disable_feature(name) ⇒ Object
44 45 46 |
# File 'lib/ghaki/registry/engine.rb', line 44 def disable_feature name get_feature(name).disable end |
#disable_plugin(feat, plug) ⇒ Object
81 82 83 |
# File 'lib/ghaki/registry/engine.rb', line 81 def disable_plugin feat, plug get_plugin(feat,plug).disable end |
#enable_feature(name) ⇒ Object
41 42 43 |
# File 'lib/ghaki/registry/engine.rb', line 41 def enable_feature name get_feature(name).enable end |
#enable_plugin(feat, plug) ⇒ Object
78 79 80 |
# File 'lib/ghaki/registry/engine.rb', line 78 def enable_plugin feat, plug get_plugin(feat,plug).enable end |
#enabled_feature?(name) ⇒ Boolean
47 48 49 |
# File 'lib/ghaki/registry/engine.rb', line 47 def enabled_feature? name get_feature(name).enabled? end |
#enabled_plugin?(feat, plug) ⇒ Boolean
84 85 86 |
# File 'lib/ghaki/registry/engine.rb', line 84 def enabled_plugin? feat, plug get_plugin(feat,plug).enabled? end |
#factory_create(feat, plug, *args) ⇒ Object
87 88 89 |
# File 'lib/ghaki/registry/engine.rb', line 87 def factory_create feat, plug, *args get_plugin(feat,plug).create(*args) end |
#failed_plugin?(feat, plug) ⇒ Boolean
93 94 95 |
# File 'lib/ghaki/registry/engine.rb', line 93 def failed_plugin? feat, plug get_plugin(feat,plug).failed? end |
#get_feature(name) ⇒ Object
35 36 37 38 |
# File 'lib/ghaki/registry/engine.rb', line 35 def get_feature name assert_feature! name @features[name] end |
#get_plugin(feat, plug) ⇒ Object
73 74 75 |
# File 'lib/ghaki/registry/engine.rb', line 73 def get_plugin feat, plug get_feature(feat).get_plugin(plug) end |
#has_feature?(name) ⇒ Boolean
29 30 31 |
# File 'lib/ghaki/registry/engine.rb', line 29 def has_feature? name @features.has_key? name end |
#has_plugin?(feat, plug) ⇒ Boolean
58 59 60 |
# File 'lib/ghaki/registry/engine.rb', line 58 def has_plugin? feat, plug get_feature(feat).has_plugin? plug end |
#load_plugin(feat, plug, lib_path) ⇒ Object
70 71 72 |
# File 'lib/ghaki/registry/engine.rb', line 70 def load_plugin feat, plug, lib_path get_feature(feat).load_plugin(plug,lib_path) end |
#plugin_failure(feat, plug) ⇒ Object
90 91 92 |
# File 'lib/ghaki/registry/engine.rb', line 90 def plugin_failure feat, plug get_plugin(feat,plug).failure end |
#plugins(feat) ⇒ Object
52 53 54 |
# File 'lib/ghaki/registry/engine.rb', line 52 def plugins feat get_feature(feat).plugins end |
#remove_feature(name) ⇒ Object
26 27 28 |
# File 'lib/ghaki/registry/engine.rb', line 26 def remove_feature name @features.delete(name) end |
#remove_plugin(feat, plug) ⇒ Object
64 65 66 |
# File 'lib/ghaki/registry/engine.rb', line 64 def remove_plugin feat, plug get_feature(feat).remove_plugin(plug) if has_feature?(feat) end |