Sha256: 90eaa70f27d2c0c0bd9f8e2f5335879beec74298c888f89971d4790f93b2ffcc

Contents?: true

Size: 899 Bytes

Versions: 2

Compression:

Stored size: 899 Bytes

Contents

require "ice/eco_template/base"

module Ice
  module EcoTemplate
    class Handler < ActionView::Template::Handler

      include ActionView::Template::Handlers::Compilable

      self.default_format = :eco

      def compile(template)
        <<-ECO
          template_source = <<-ECO_TEMPLATE
            #{template.source}
          ECO_TEMPLATE
          variables = {}
          variable_names = controller.instance_variable_names
          variable_names -= %w[@template]
          if controller.respond_to?(:protected_instance_variables)
            variable_names -= controller.protected_instance_variables
          end
          variable_names.each do |name|
            variables[name.sub(/^@/, "")] = controller.instance_variable_get(name)
          end
          Ice::EcoTemplate.convert_template(template_source, variables.merge(local_assigns))
        ECO
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ice-0.4.1 lib/ice/eco_template/handler.rb
ice-0.4.0 lib/ice/eco_template/handler.rb