class ActionView::Template::Handlers::Erubis - actionview-4.2.3 Documentation

# class ActionView::Template::Handlers::Erubis

### Constants

BLOCK_EXPR

### Public Instance Methods

add_expr(src, code, indicator) click to toggle source

Erubis toggles <%= and <%== behavior when escaping is enabled. We override to always treat <%== as escaped.

Calls superclass method

    # File lib/action_view/template/handlers/erb.rb, line 29
    def add_expr(src, code, indicator)
      case indicator
      when '=='
        add_expr_escaped(src, code)
      else
        super
      end
    end

add_expr_escaped(src, code) click to toggle source

    # File lib/action_view/template/handlers/erb.rb, line 49
    def add_expr_escaped(src, code)
      flush_newline_if_pending(src)
      if code =~ BLOCK_EXPR
        src << "@output_buffer.safe_expr_append= " << code
      else
        src << "@output_buffer.safe_expr_append=(" << code << ");"
      end
    end

add_expr_literal(src, code) click to toggle source

    # File lib/action_view/template/handlers/erb.rb, line 40
    def add_expr_literal(src, code)
      flush_newline_if_pending(src)
      if code =~ BLOCK_EXPR
        src << '@output_buffer.append= ' << code
      else
        src << '@output_buffer.append=(' << code << ');'
      end
    end

add_postamble(src) click to toggle source

    # File lib/action_view/template/handlers/erb.rb, line 63
    def add_postamble(src)
      flush_newline_if_pending(src)
      src << '@output_buffer.to_s'
    end

add_preamble(src) click to toggle source

    # File lib/action_view/template/handlers/erb.rb, line 7
    def add_preamble(src)
      @newline_pending = 0
      src << "@output_buffer = output_buffer || ActionView::OutputBuffer.new;"
    end

add_stmt(src, code) click to toggle source
Calls superclass method

    # File lib/action_view/template/handlers/erb.rb, line 58
    def add_stmt(src, code)
      flush_newline_if_pending(src)
      super
    end

add_text(src, text) click to toggle source

    # File lib/action_view/template/handlers/erb.rb, line 12
    def add_text(src, text)
      return if text.empty?

      if text == "\n"
        @newline_pending += 1
      else
        src << "@output_buffer.safe_append='"
        src << "\n" * @newline_pending if @newline_pending > 0
        src << escape_text(text)
        src << "'.freeze;"

        @newline_pending = 0
      end
    end

flush_newline_if_pending(src) click to toggle source

    # File lib/action_view/template/handlers/erb.rb, line 68
    def flush_newline_if_pending(src)
      if @newline_pending > 0
        src << "@output_buffer.safe_append='#{"\n" * @newline_pending}'.freeze;"
        @newline_pending = 0
      end
    end