Class Erubis::Helper::RailsTemplate
In: erubis/helper/rails.rb
Parent: Object

Methods

Public Class methods

[Source]

# File erubis/helper/rails.rb, line 49
      def self.default_properties
        return @@default_properties
      end

[Source]

# File erubis/helper/rails.rb, line 53
      def self.default_properties=(properties)
        @@default_properties = properties
      end

[Source]

# File erubis/helper/rails.rb, line 35
      def self.engine_class
        @@engine_class
      end

[Source]

# File erubis/helper/rails.rb, line 39
      def self.engine_class=(klass)
        @@engine_class = klass
        @@engine_instance = klass.new
      end

cattr_accessor :default_properties

[Source]

# File erubis/helper/rails.rb, line 60
      def initialize(view)
        @view = view
        #@@engine_instance ||= @@engine_class.new(nil, @@default_properties)
      end

Public Instance methods

[Source]

# File erubis/helper/rails.rb, line 66
      def convert(template)
        #code = @@engine_instance.convert(template)
        #return code
        engine = @@engine_class.new(nil, @@default_properties)
        code = engine.convert(template)
        return code
      end

[Source]

# File erubis/helper/rails.rb, line 75
      def render(template, assigns)
        ## get ruby code
        code = convert(template)

        ## use @view as context object
        @view.__send__(:evaluate_assigns)  #or @view.instance_eval("evaluate_assigns()")
        context = @view

        ## evaluate ruby code with context object
        if assigns && !assigns.empty?
          return _evaluate_string(code, context, assigns)
        else
          return context.instance_eval(code)
        end
      end

Protected Instance methods

[Source]

# File erubis/helper/rails.rb, line 102
      def _evaluate_string(_code, _context, _localvars)
        eval(_localvar_code(_localvars))
        _context.instance_eval(_code)
      end

[Source]

# File erubis/helper/rails.rb, line 95
      def _localvar_code(_localvars)
        list = _localvars.collect { |_name| "#{_name} = _localvars[#{_name.inspect}]\n" }
        code = list.join()
        return code
      end

[Validate]