class Rack::MiniProfiler::Config

Attributes

authorization_mode[RW]
auto_inject[RW]
backtrace_ignores[RW]
backtrace_includes[RW]
backtrace_remove[RW]
backtrace_threshold_ms[RW]
base_url_path[RW]
collapse_results[RW]

ui accessors

disable_caching[RW]
disable_env_dump[RW]
enabled[RW]
flamegraph_sample_rate[RW]
horizontal_position[RW]

ui accessors

html_container[RW]

ui accessors

logger[RW]
max_sql_param_length[RW]
max_traces_to_show[RW]

ui accessors

position[RW]

ui accessors

pre_authorize_cb[RW]
show_children[RW]

ui accessors

show_controls[RW]

ui accessors

show_trivial[RW]

ui accessors

skip_paths[RW]
skip_schema_queries[RW]
skip_sql_param_names[RW]
start_hidden[RW]

ui accessors

storage[RW]
storage_failure[RW]
storage_instance[RW]
storage_options[RW]
suppress_encoding[RW]
toggle_shortcut[RW]

ui accessors

use_existing_jquery[RW]

Deprecated options

user_provider[RW]
vertical_position[RW]

ui accessors

Public Class Methods

attr_accessor(*vars) click to toggle source
Calls superclass method
# File lib/mini_profiler/config.rb, line 5
def self.attr_accessor(*vars)
  @attributes ||= []
  @attributes.concat vars
  super(*vars)
end
attributes() click to toggle source
# File lib/mini_profiler/config.rb, line 11
def self.attributes
  @attributes
end
default() click to toggle source
# File lib/mini_profiler/config.rb, line 31
def self.default
  new.instance_eval {
    @auto_inject      = true # automatically inject on every html page
    @base_url_path    = "/mini-profiler-resources/"
    @disable_caching  = true
    # called prior to rack chain, to ensure we are allowed to profile
    @pre_authorize_cb = lambda {|env| true}

    # called after rack chain, to ensure we are REALLY allowed to profile
    @skip_schema_queries    = false
    @storage                = MiniProfiler::MemoryStore
    @user_provider          = Proc.new{|env| Rack::Request.new(env).ip}
    @authorization_mode     = :allow_all
    @backtrace_threshold_ms = 0
    @flamegraph_sample_rate = 0.5
    @storage_failure = Proc.new do |exception|
      if @logger
        @logger.warn("MiniProfiler storage failure: #{exception.message}")
      end
    end
    @enabled = true
    @disable_env_dump = false
    @max_sql_param_length = 0 # disable sql parameter collection by default
    @skip_sql_param_names = /password/ # skips parameters with the name password by default

    # ui parameters
    @autorized          = true
    @collapse_results   = true
    @max_traces_to_show = 20
    @show_children      = false
    @show_controls      = false
    @show_trivial       = false
    @start_hidden       = false
    @toggle_shortcut    = 'Alt+P'
    @html_container     = 'body'

    self
  }
end

Public Instance Methods

merge!(config) click to toggle source
# File lib/mini_profiler/config.rb, line 71
def merge!(config)
  if config
    if Hash === config
      config.each{|k,v| instance_variable_set "@#{k}",v}
    else
      self.class.attributes.each{ |k|
        v = config.send k
        instance_variable_set "@#{k}", v if v
      }
    end
  end
  set_positions!
end
set_positions!() click to toggle source
# File lib/mini_profiler/config.rb, line 85
def set_positions!
  position = (self.position && self.position.match("-")) ? self.position.split("-") : ["top", "left"]
  self.vertical_position = position.first
  self.horizontal_position = position.last
end