Sha256: 7712ebf60c5b449954b2d103b1a6d3083b912f9949a4190d8df783d08132a4e4

Contents?: true

Size: 930 Bytes

Versions: 4

Compression:

Stored size: 930 Bytes

Contents

module Plutonium
  module Core
    module Controllers
      module Bootable
        extend ActiveSupport::Concern

        included do
          class_attribute :package
          class_attribute :resource_class, instance_writer: false, instance_predicate: false

          helper_method :resource_class
        end

        class_methods do
          def current_engine
            "#{package}::Engine".constantize
          end

          private

          def boot(package)
            self.package = package

            prepend_view_path current_engine.paths["app/views"].first
          end

          def controller_for(resource_class)
            self.resource_class = resource_class
          end
        end

        private

        def current_engine
          @current_engine ||= self.class.current_engine
        end

        def current_package
          self.class.package
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
plutonium-0.6.2 lib/plutonium/core/controllers/bootable.rb
plutonium-0.6.1 lib/plutonium/core/controllers/bootable.rb
plutonium-0.6.0 lib/plutonium/core/controllers/bootable.rb
plutonium-0.5.0 lib/plutonium/core/controllers/bootable.rb