class Rack::MiniProfiler::ClientSettings

Constants

BACKTRACE_DEFAULT
BACKTRACE_FULL
BACKTRACE_NONE

Attributes

backtrace_level[RW]
disable_profiling[RW]

Public Class Methods

new(env) click to toggle source
# File Ruby/lib/mini_profiler/client_settings.rb, line 15
def initialize(env)
  request = ::Rack::Request.new(env)
  @cookie = request.cookies[COOKIE_NAME]
  if @cookie
    @cookie.split(",").map{|pair| pair.split("=")}.each do |k,v|
      @orig_disable_profiling = @disable_profiling = (v=='t') if k == "dp"
      @backtrace_level = v.to_i if k == "bt"
    end
  end

  @backtrace_level = nil if !@backtrace_level.nil? && (@backtrace_level == 0 || @backtrace_level > BACKTRACE_NONE)
  @orig_backtrace_level = @backtrace_level

end

Public Instance Methods

backtrace_default?() click to toggle source
# File Ruby/lib/mini_profiler/client_settings.rb, line 56
def backtrace_default?
  @backtrace_level == BACKTRACE_DEFAULT
end
backtrace_full?() click to toggle source
# File Ruby/lib/mini_profiler/client_settings.rb, line 52
def backtrace_full?
  @backtrace_level == BACKTRACE_FULL
end
backtrace_none?() click to toggle source
# File Ruby/lib/mini_profiler/client_settings.rb, line 60
def backtrace_none?
  @backtrace_level == BACKTRACE_NONE
end
disable_profiling?() click to toggle source
# File Ruby/lib/mini_profiler/client_settings.rb, line 48
def disable_profiling?
  @disable_profiling
end
write!(headers) click to toggle source
# File Ruby/lib/mini_profiler/client_settings.rb, line 30
def write!(headers)
  if @orig_disable_profiling != @disable_profiling || @orig_backtrace_level != @backtrace_level || @cookie.nil?
    settings = {"p" =>  "t" }
    settings["dp"] = "t" if @disable_profiling
    settings["bt"] = @backtrace_level if @backtrace_level
    settings_string = settings.map{|k,v| "#{k}=#{v}"}.join(",")
    Rack::Utils.set_cookie_header!(headers, COOKIE_NAME, :value => settings_string, :path => '/')
  end
end