Sha256: 7699b2647443b56867a0e67aaf714b4b67aed4040a78ea124e8e1b47c13a7d7d

Contents?: true

Size: 1.21 KB

Versions: 1

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

1 entries across 1 versions & 1 rubygems

Version Path
inky-rb-1.3.7.3 lib/inky/rails/template_handler.rb