class Rack::Escapee

Constants

ESCAPED_ENTITY
ESCAPED_TAG

Public Class Methods

new(app, options = {}) click to toggle source
# File lib/rack/escapee.rb, line 9
def initialize(app, options = {})
  @app = app
  @options = {
    :logfile => false,
    :entities => false
  }.merge(options)

  if @options[:logfile]
    @logger = ::Logger.new(@options[:logfile])
  else
    @logger = ::Logger.new(STDOUT)
  end
  @logger.datetime_format = "%Y-%m-%d %H:%M:%S"
end

Public Instance Methods

call(env) click to toggle source
# File lib/rack/escapee.rb, line 24
def call(env)
  req = Request.new(env)
  path = req.path_info
  status, headers, response = @app.call(env)
  response_body = []
  response.each do |part|
    if part =~ ESCAPED_TAG
      @logger.warn("rendering escaped tag: #{$1}")
    elsif part =~ ESCAPED_ENTITY && @options[:entities]
      @logger.warn("rendering escaped entity: #{$1}")
    end
    response_body << part
  end

  [status, headers, response_body]
end