class Rack::MiniProfiler::ClientSettings
Constants
- BACKTRACE_DEFAULT
- BACKTRACE_FULL
- BACKTRACE_NONE
- COOKIE_NAME
Attributes
backtrace_level[RW]
disable_profiling[RW]
Public Class Methods
new(env, store, start)
click to toggle source
# File lib/mini_profiler/client_settings.rb, line 16 def initialize(env, store, start) @request = ::Rack::Request.new(env) @cookie = @request.cookies[COOKIE_NAME] @store = store @start = start @backtrace_level = nil @orig_disable_profiling = @disable_profiling = nil @allowed_tokens, @orig_auth_tokens = nil 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" @orig_auth_tokens = v.to_s.split("|") if k == "a" end end if !@backtrace_level.nil? && (@backtrace_level == 0 || @backtrace_level > BACKTRACE_NONE) @backtrace_level = nil end @orig_backtrace_level = @backtrace_level end
Public Instance Methods
backtrace_default?()
click to toggle source
# File lib/mini_profiler/client_settings.rb, line 118 def backtrace_default? @backtrace_level == BACKTRACE_DEFAULT end
backtrace_full?()
click to toggle source
# File lib/mini_profiler/client_settings.rb, line 114 def backtrace_full? @backtrace_level == BACKTRACE_FULL end
backtrace_none?()
click to toggle source
# File lib/mini_profiler/client_settings.rb, line 122 def backtrace_none? @backtrace_level == BACKTRACE_NONE end
disable_profiling?()
click to toggle source
# File lib/mini_profiler/client_settings.rb, line 110 def disable_profiling? @disable_profiling end
write!(headers)
click to toggle source
# File lib/mini_profiler/client_settings.rb, line 58 def write!(headers) tokens_changed = false if MiniProfiler.request_authorized? && MiniProfiler.config.authorization_mode == :allow_authorized @allowed_tokens ||= @store.allowed_tokens tokens_changed = !@orig_auth_tokens || ((@allowed_tokens - @orig_auth_tokens).length > 0) end if @orig_disable_profiling != @disable_profiling || @orig_backtrace_level != @backtrace_level || @cookie.nil? || tokens_changed settings = { "p" => "t" } settings["dp"] = "t" if @disable_profiling settings["bt"] = @backtrace_level if @backtrace_level settings["a"] = @allowed_tokens.join("|") if @allowed_tokens && MiniProfiler.request_authorized? settings_string = settings.map { |k, v| "#{k}=#{v}" }.join(",") cookie = { value: settings_string, path: MiniProfiler.config.cookie_path, httponly: true } cookie[:secure] = true if @request.ssl? cookie[:same_site] = 'Lax' Rack::Utils.set_cookie_header!(headers, COOKIE_NAME, cookie) end end