class Godmin::EngineWrapper

Attributes

engine[R]

Public Class Methods

new(controller) click to toggle source
# File lib/godmin/engine_wrapper.rb, line 5
def initialize(controller)
  @engine = find_engine(controller)
end

Public Instance Methods

namespace() click to toggle source
# File lib/godmin/engine_wrapper.rb, line 9
def namespace
  @namespace ||= engine.railtie_namespace
end
namespaced?() click to toggle source
# File lib/godmin/engine_wrapper.rb, line 13
def namespaced?
  @namespaced ||= namespace.present?
end
namespaced_path() click to toggle source
# File lib/godmin/engine_wrapper.rb, line 17
def namespaced_path
  @namespaced_path ||= begin
    if namespaced?
      namespace.name.split("::").map(&:underscore)
    else
      []
    end
  end
end
root() click to toggle source
# File lib/godmin/engine_wrapper.rb, line 27
def root
  engine.root
end

Private Instance Methods

find_engine(controller) click to toggle source
# File lib/godmin/engine_wrapper.rb, line 33
def find_engine(controller)
  engine_module = find_engine_module(controller)

  if engine_module
    "#{engine_module}::Engine".constantize
  else
    Rails.application
  end
end
find_engine_module(controller) click to toggle source
# File lib/godmin/engine_wrapper.rb, line 52
def find_engine_module(controller)
  parents_of(controller).find do |parent|
    parent.respond_to?(:use_relative_model_naming?) && parent.use_relative_model_naming?
  end
end
parents_of(controller) click to toggle source

Some gymnastics because the ‘parents` function is slated for deprecation and being replaced by `module_parents` and we don’t want to clutter our log with a million warnings

# File lib/godmin/engine_wrapper.rb, line 46
def parents_of(controller)
  return controller.module_parents if controller.respond_to?(:module_parents)

  controller.parents
end