Sha256: b5ac52c370daa7d1676ac13c7e57125ed94dc239d6e5a682f5cb77f7bb33c14e

Contents?: true

Size: 990 Bytes

Versions: 7

Compression:

Stored size: 990 Bytes

Contents

module ActionView #:nodoc:
  module TemplateHandlers #:nodoc:
    class ErtTemplate < TemplateHandler
      include Compilable
      def self.line_offset
        2
      end

      ActionView::Template.instance_eval do
        register_template_handler :ert, ActionView::TemplateHandlers::ErtTemplate
      end

      def compile(template)
        [
          "extend ::Erector::Mixin",
          "@output_buffer = ''",
          "memoized_instance_variables = instance_variables.inject({}) do |all, instance_variable|",
          "  all[instance_variable] = instance_variable_get(instance_variable)",
          "  all",
          "end",
          "r = (controller.ert_template_base_class || ::Erector).inline do",
          "  memoized_instance_variables.each do |instance_variable, value|",
          "    instance_variable_set(instance_variable, value)",
          "  end",
          template.source,
          "end",
          "r.to_s",
        ].join("; ")
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
erector-0.10.0 lib/erector/rails2/template_handlers/ert_handler.rb
erector-0.9.0 lib/erector/rails2/template_handlers/ert_handler.rb
erector-0.9.0.pre1 lib/erector/rails2/template_handlers/ert_handler.rb
erector-0.8.3 lib/erector/rails2/template_handlers/ert_handler.rb
erector-0.8.2 lib/erector/rails/template_handlers/ert_handler.rb
erector-0.8.1 lib/erector/rails/template_handlers/ert_handler.rb
erector-0.8.0 lib/erector/rails/template_handlers/ert_handler.rb