module Sinatra::Firudo

Public Class Methods

filter_attributes(*names) click to toggle source
# File lib/firudo.rb, line 19
def self.filter_attributes(*names)
  logger.instance_variable_set(:@params_to_filter, names)
  logger.instance_eval do
    def write(msg)
      params = msg.split('&')
      @params_to_filter.each do |attr|
        params.each { |el| el.gsub! /#{Regexp.quote(attr)}=([\w]+)\b/, "#{attr}=******** " }
      end
      msg = params * '&'
      self.send(:<<, msg)
    end
  end

  @klass.configure do
    @klass.use ::Rack::CommonLogger, @logger
  end
end
logger() click to toggle source
# File lib/firudo.rb, line 15
def self.logger
  @logger ||= ::Logger.new(@klass.access_log)
end
registered(klass) click to toggle source
# File lib/firudo.rb, line 7
def self.registered(klass)
  @firudo_loaded_in ||= {}
  @klass = klass
  return if @firudo_loaded_in[klass]

  klass.set :access_log, lambda { File.join(root, 'log', "#{ENV['RACK_ENV']}.log") }
end

Public Instance Methods

write(msg) click to toggle source
# File lib/firudo.rb, line 22
def write(msg)
  params = msg.split('&')
  @params_to_filter.each do |attr|
    params.each { |el| el.gsub! /#{Regexp.quote(attr)}=([\w]+)\b/, "#{attr}=******** " }
  end
  msg = params * '&'
  self.send(:<<, msg)
end