Sha256: 29044822ed79bfd3a999a53f61a94008138d9aca9c34ae3dd54a4b61f16fa7c1

Contents?: true

Size: 926 Bytes

Versions: 5

Compression:

Stored size: 926 Bytes

Contents

module Controller
  module CurrentEngineConcern
    extend ActiveSupport::Concern

    included do
      helper_method :current_engine
    end

    private

    def current_engine
      if respond_to?(:engine)
        return engine
      end
      if respond_to?(:resource_class)
        registered_items = Itsf::Backend.backend_engines.collect { |e| e.name.gsub!('::Engine', '').constantize }.each_with_object({}) { |e, memo| memo[e] = e.registered_controllers.call }
      end
      if respond_to?(:service_class)
        registered_items = Itsf::Backend.backend_engines.collect { |e| e.name.gsub!('::Engine', '').constantize }.each_with_object({}) { |e, memo| memo[e] = e.registered_services.call }
      end
      if registered_items.present?
        engine_namespace = registered_items.find { |key, values| values.include?(self.class) }.first
        "#{engine_namespace}::Engine".constantize
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
itsf_backend-5.0.0.pre app/controllers/concerns/controller/current_engine_concern.rb
itsf_backend-4.2.3 app/controllers/concerns/controller/current_engine_concern.rb
itsf_backend-4.2.2 app/controllers/concerns/controller/current_engine_concern.rb
itsf_backend-4.2.1 app/controllers/concerns/controller/current_engine_concern.rb
itsf_backend-4.2.0 app/controllers/concerns/controller/current_engine_concern.rb