class RailsMiniProfiler::Configuration

The main Rails Mini Profiler configuration object

@!attribute [r] logger

@return [Logger] the current logger

@!attribute enabled

@return [Boolean] if the profiler is enabled

@!attribute flamegraph_enabled

@return [Boolean] if Flamegraph recording is enabled

@!attribute flamegraph_sample_rate

@return [Float] the sample rate in samples per millisecond

@!attribute skip_paths

@return [Array<String>] a list of regex patterns for paths to skip

@!attribute storage

@return [Storage] the storage configuration

@!attribute ui

@return [UserInterface] the ui configuration

@!attribute user_provider

@return [Proc] a proc to identify a user based on a rack env

Attributes

enabled[RW]
flamegraph_enabled[RW]
flamegraph_sample_rate[RW]
logger[R]
skip_paths[RW]
storage[RW]
ui[RW]
user_provider[RW]

Public Class Methods

new(**kwargs) click to toggle source
# File lib/rails_mini_profiler/configuration.rb, line 36
def initialize(**kwargs)
  reset
  kwargs.each { |key, value| instance_variable_set("@#{key}", value) }
end

Public Instance Methods

logger=(logger) click to toggle source

Set the logger

@param logger [Logger]

The logger to be used. If set to nil, the Rails default logger is used and the log level set to fatal
# File lib/rails_mini_profiler/configuration.rb, line 57
def logger=(logger)
  if logger.nil?
    @logger.level = Logger::FATAL
  else
    @logger = logger
  end
end
reset() click to toggle source

Reset the configuration to default values

# File lib/rails_mini_profiler/configuration.rb, line 42
def reset
  @enabled = proc { |_env| Rails.env.development? || Rails.env.test? }
  @flamegraph_enabled = true
  @flamegraph_sample_rate = 0.5
  @logger = RailsMiniProfiler::Logger.new(Rails.logger)
  @skip_paths = []
  @storage = Storage.new
  @ui = UserInterface.new
  @user_provider = proc { |env| Rack::Request.new(env).ip }
end