Sha256: a60b3936db005738e9de8de738758f37d26ab9a699822086c5bf57742521ffb0

Contents?: true

Size: 1.21 KB

Versions: 2

Compression:

Stored size: 1.21 KB

Contents

module Inky
  module Rails
    class TemplateHandler
      def initialize(compose_with = nil)
        @engine_handler = ActionView::Template.registered_template_handler(compose_with) if compose_with
      end

      def engine_handler
        return @engine_handler if @engine_handler
        type = ::Inky.configuration.template_engine
        ActionView::Template.registered_template_handler(type) ||
          raise("No template handler found for #{type}")
      end

      def call(template)
        compiled_source = engine_handler.call(template)
        "Inky::Core.new.release_the_kraken(begin; #{compiled_source};end)"
      end

      module Composer
        def register_template_handler(ext, *)
          super
          super :"inky-#{ext}", Inky::Rails::TemplateHandler.new(ext)
        end
      end
    end
  end
end

ActiveSupport.on_load(:action_view) do
  ActionView::Template.template_handler_extensions.each do |ext|
    ActionView::Template.register_template_handler :"inky-#{ext}", Inky::Rails::TemplateHandler.new(ext)
  end
  ActionView::Template.register_template_handler :inky, Inky::Rails::TemplateHandler.new
  ActionView::Template.singleton_class.send :prepend, Inky::Rails::TemplateHandler::Composer
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
inky-rb-1.3.7.2 lib/inky/rails/template_handler.rb
inky-rb-1.3.7.1 lib/inky/rails/template_handler.rb