Module: Cms::EngineHelper
- Included in:
- ContentType
- Defined in:
- lib/cms/engine_helper.rb
Class Method Summary collapse
-
.decorate(instance) ⇒ Object
Add this module if its not already.
-
.module_name(klass) ⇒ Object
Finds the top level module for a given class.
Instance Method Summary collapse
- #engine_exists? ⇒ Boolean
- #engine_name ⇒ Object
- #main_app_model? ⇒ Boolean
- #path_elements ⇒ Object
-
#path_subject ⇒ Object
Subclasses can override this as necessary.
-
#target_class ⇒ Object
Subclasses can override this as necessary.
Class Method Details
.decorate(instance) ⇒ Object
Add this module if its not already.
43 44 45 |
# File 'lib/cms/engine_helper.rb', line 43 def self.decorate(instance) instance.extend EngineHelper unless instance.respond_to?(:engine_name) end |
.module_name(klass) ⇒ Object
Finds the top level module for a given class. Cms::Thing -> Cms Thing -> nil Whatever::Thing -> Whatever
53 54 55 56 57 |
# File 'lib/cms/engine_helper.rb', line 53 def self.module_name(klass) names = klass.name.split("::") return names.first if names.size > 1 nil end |
Instance Method Details
#engine_exists? ⇒ Boolean
8 9 10 |
# File 'lib/cms/engine_helper.rb', line 8 def engine_exists? !main_app_model? end |
#engine_name ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/cms/engine_helper.rb', line 12 def engine_name name = EngineHelper.module_name(target_class) return "main_app" unless name begin engine = "#{name}::Engine".constantize rescue NameError # This means there is no Engine for this model, so its from the main Rails App. return "main_app" end engine.engine_name end |
#main_app_model? ⇒ Boolean
4 5 6 |
# File 'lib/cms/engine_helper.rb', line 4 def main_app_model? engine_name == "main_app" end |
#path_elements ⇒ Object
25 26 27 28 29 |
# File 'lib/cms/engine_helper.rb', line 25 def path_elements path = [] path << "cms" if main_app_model? path << path_subject end |
#path_subject ⇒ Object
Subclasses can override this as necessary
38 39 40 |
# File 'lib/cms/engine_helper.rb', line 38 def path_subject self end |
#target_class ⇒ Object
Subclasses can override this as necessary
32 33 34 35 |
# File 'lib/cms/engine_helper.rb', line 32 def target_class return self.class unless self.instance_of?(Class) self end |