Parent

Class/Module Index [+]

Quicksearch

Brakeman::Rails3Erubis

This is from Rails 3 version of the Erubis handler

Constants

BLOCK_EXPR

Public Instance Methods

add_expr_escaped(src, code) click to toggle source
# File lib/brakeman/parsers/rails3_erubis.rb, line 48
def add_expr_escaped(src, code)
  if code =~ BLOCK_EXPR
    src << "@output_buffer.safe_append= " << code
  else
    src << "@output_buffer.safe_concat(" << code << ");"
  end
end
add_expr_literal(src, code) click to toggle source
# File lib/brakeman/parsers/rails3_erubis.rb, line 32
def add_expr_literal(src, code)
  if code =~ BLOCK_EXPR
    src << '@output_buffer.append= ' << code
  else
    src << '@output_buffer.append= (' << code << ');'
  end
end
add_postamble(src) click to toggle source

Add code to output buffer.

# File lib/brakeman/parsers/rails3_erubis.rb, line 57
def add_postamble(src)
  # src << '_buf.to_s'
end
add_preamble(src) click to toggle source
# File lib/brakeman/parsers/rails3_erubis.rb, line 4
def add_preamble(src)
  # src << "_buf = ActionView::SafeBuffer.new;\n"
end
add_stmt(src, code) click to toggle source
# File lib/brakeman/parsers/rails3_erubis.rb, line 40
def add_stmt(src, code)
  if code =~ BLOCK_EXPR
    src << '@output_buffer.append_if_string= ' << code
  else
    super
  end
end
add_text(src, text) click to toggle source

This is different from Rails 3 - fixes some line number issues

# File lib/brakeman/parsers/rails3_erubis.rb, line 9
def add_text(src, text)
  if text == "\n"
    src << "\n"
  elsif text.include? "\n"
    lines = text.split("\n")
    if text.match(/\n\z/)
      lines.each do |line|
        src << "@output_buffer << ('" << escape_text(line) << "'.html_safe!);\n"
      end
    else
      lines[0..-2].each do |line|
        src << "@output_buffer << ('" << escape_text(line) << "'.html_safe!);\n"
      end

      src << "@output_buffer << ('" << escape_text(lines.last) << "'.html_safe!);"
    end
  else
    src << "@output_buffer << ('" << escape_text(text) << "'.html_safe!);"
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.