Sha256: 5e160c764d1df4e5adaaeaa87b01a45d5c91b18cf61fa089e4528b9ee20e8d0f

Contents?: true

Size: 1.06 KB

Versions: 6

Compression:

Stored size: 1.06 KB

Contents

begin
  require 'erubis'
rescue LoadError => e
  $stderr.puts e.message
  $stderr.puts "Please install Erubis."
  exit!
end

#This is from the rails_xss plugin,
#except we don't care about plain text.
class RailsXSSErubis < ::Erubis::Eruby
  include Erubis::NoTextEnhancer

  #Initializes output buffer.
  def add_preamble(src)
    src << "@output_buffer = ActionView::SafeBuffer.new;\n"
  end

  #This does nothing.
  def add_text(src, text)
    #    src << "@output_buffer << ('" << escape_text(text) << "'.html_safe!);"
  end

  #Add an expression to the output buffer _without_ escaping.
  def add_expr_literal(src, code)
    src << '@output_buffer << ((' << code << ').to_s);'
  end

  #Add an expression to the output buffer after escaping it.
  def add_expr_escaped(src, code)
    src << '@output_buffer << ' << escaped_expr(code) << ';'
  end

  #Add code to output buffer.
  def add_postamble(src)
    src << '@output_buffer.to_s'
  end
end

#Erubis processor which ignores any output which is plain text.
class ScannerErubis < Erubis::Eruby
  include Erubis::NoTextEnhancer
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
brakeman-min-0.3.2 lib/scanner_erubis.rb
brakeman-min-0.3.1 lib/scanner_erubis.rb
brakeman-min-0.3.0 lib/scanner_erubis.rb
brakeman-min-0.2.2 lib/scanner_erubis.rb
brakeman-min-0.2.1 lib/scanner_erubis.rb
brakeman-min-0.2.0 lib/scanner_erubis.rb