Class: Profiler::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/profiler/configuration.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/profiler/configuration.rb', line 21

def initialize
  @enabled = false
  @storage = :memory
  @storage_options = {}
  @collectors = []
  @skip_paths = [%r{^/_profiler}, /\.well-known/, /favicon\.ico/, /manifest\.json/]
  @slow_query_threshold = 100 # milliseconds
  @max_queries_warning = 50
  @track_memory = true
  @memory_warning_threshold = 100 * 1024 * 1024 # 100 MB
  @mcp_enabled = false
  @mcp_transport = :stdio
  @mcp_port = 3001
  @authorization_mode = :allow_all
  @authorize_block = nil
  @max_profiles = 100
  @extension_cors_enabled = true
  @cors_allowed_origins = ["*"]
  @track_ajax = true
  @ajax_skip_paths = [/^\/_profiler/]
  @track_http = true
  @slow_http_threshold = 500 # milliseconds
  @http_skip_hosts = []
  @track_jobs = true
  @track_mailers = true
  @capture_mail_body = false
  @sanitize_mailer_recipients = false
  @mailer_skip_actions = []
  @compress_bodies = true
  @compress_body_threshold = 10 * 1024 # 10 KB
  @tmp_path = nil
end

Instance Attribute Details

#ajax_skip_pathsObject

Returns the value of attribute ajax_skip_paths.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def ajax_skip_paths
  @ajax_skip_paths
end

#authorization_modeObject

Returns the value of attribute authorization_mode.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def authorization_mode
  @authorization_mode
end

#authorize_blockObject (readonly)

Returns the value of attribute authorize_block.



19
20
21
# File 'lib/profiler/configuration.rb', line 19

def authorize_block
  @authorize_block
end

#capture_mail_bodyObject

Returns the value of attribute capture_mail_body.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def capture_mail_body
  @capture_mail_body
end

#collectorsObject

Returns the value of attribute collectors.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def collectors
  @collectors
end

#compress_bodiesObject

Returns the value of attribute compress_bodies.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def compress_bodies
  @compress_bodies
end

#compress_body_thresholdObject

Returns the value of attribute compress_body_threshold.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def compress_body_threshold
  @compress_body_threshold
end

#cors_allowed_originsObject

Returns the value of attribute cors_allowed_origins.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def cors_allowed_origins
  @cors_allowed_origins
end

#enabledObject

Returns the value of attribute enabled.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def enabled
  @enabled
end

#extension_cors_enabledObject

Returns the value of attribute extension_cors_enabled.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def extension_cors_enabled
  @extension_cors_enabled
end

#http_skip_hostsObject

Returns the value of attribute http_skip_hosts.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def http_skip_hosts
  @http_skip_hosts
end

#mailer_skip_actionsObject

Returns the value of attribute mailer_skip_actions.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def mailer_skip_actions
  @mailer_skip_actions
end

#max_profilesObject

Returns the value of attribute max_profiles.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def max_profiles
  @max_profiles
end

#max_queries_warningObject

Returns the value of attribute max_queries_warning.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def max_queries_warning
  @max_queries_warning
end

#mcp_enabledObject

Returns the value of attribute mcp_enabled.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def mcp_enabled
  @mcp_enabled
end

#mcp_portObject

Returns the value of attribute mcp_port.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def mcp_port
  @mcp_port
end

#mcp_transportObject

Returns the value of attribute mcp_transport.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def mcp_transport
  @mcp_transport
end

#memory_warning_thresholdObject

Returns the value of attribute memory_warning_threshold.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def memory_warning_threshold
  @memory_warning_threshold
end

#sanitize_mailer_recipientsObject

Returns the value of attribute sanitize_mailer_recipients.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def sanitize_mailer_recipients
  @sanitize_mailer_recipients
end

#skip_pathsObject

Returns the value of attribute skip_paths.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def skip_paths
  @skip_paths
end

#slow_http_thresholdObject

Returns the value of attribute slow_http_threshold.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def slow_http_threshold
  @slow_http_threshold
end

#slow_query_thresholdObject

Returns the value of attribute slow_query_threshold.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def slow_query_threshold
  @slow_query_threshold
end

#storageObject

Returns the value of attribute storage.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def storage
  @storage
end

#storage_optionsObject

Returns the value of attribute storage_options.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def storage_options
  @storage_options
end

#tmp_pathObject



54
55
56
# File 'lib/profiler/configuration.rb', line 54

def tmp_path
  @tmp_path || default_tmp_path
end

#track_ajaxObject

Returns the value of attribute track_ajax.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def track_ajax
  @track_ajax
end

#track_httpObject

Returns the value of attribute track_http.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def track_http
  @track_http
end

#track_jobsObject

Returns the value of attribute track_jobs.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def track_jobs
  @track_jobs
end

#track_mailersObject

Returns the value of attribute track_mailers.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def track_mailers
  @track_mailers
end

#track_memoryObject

Returns the value of attribute track_memory.



5
6
7
# File 'lib/profiler/configuration.rb', line 5

def track_memory
  @track_memory
end

Instance Method Details

#authorize_with(&block) ⇒ Object



58
59
60
# File 'lib/profiler/configuration.rb', line 58

def authorize_with(&block)
  @authorize_block = block
end

#authorized?(request) ⇒ Boolean

Returns:

  • (Boolean)


62
63
64
65
66
67
68
69
70
71
# File 'lib/profiler/configuration.rb', line 62

def authorized?(request)
  case @authorization_mode
  when :allow_all
    true
  when :allow_authorized
    @authorize_block ? @authorize_block.call(request) : false
  else
    false
  end
end

#storage_backendObject



73
74
75
# File 'lib/profiler/configuration.rb', line 73

def storage_backend
  @storage_backend ||= build_storage_backend
end