Class: Rack::PerftoolsProfiler::ProfileOnce
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Utils
#let
check_printer, #check_printer_arg
Methods inherited from Action
for_env
Constructor Details
Returns a new instance of ProfileOnce.
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/rack/perftools_profiler/profile_once.rb', line 11
def initialize(*args)
super
request = Rack::Request.new(@env)
@times = (request.GET.fetch('times') {1}).to_i
@mode = let(request.GET['mode']) do |m|
if m.nil? || m.empty?
nil
else
m.to_sym
end
end
check_printer_arg
@new_env = delete_custom_params(@env)
end
|
Class Method Details
.has_special_param?(request) ⇒ Boolean
7
8
9
|
# File 'lib/rack/perftools_profiler/profile_once.rb', line 7
def self.has_special_param?(request)
request.GET['profile'] != nil
end
|
Instance Method Details
#act ⇒ Object
26
27
28
29
30
|
# File 'lib/rack/perftools_profiler/profile_once.rb', line 26
def act
@profiler.profile(@mode) do
@times.times { @middleware.call_app(@new_env) }
end
end
|
#delete_custom_params(env) ⇒ Object
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/rack/perftools_profiler/profile_once.rb', line 36
def delete_custom_params(env)
new_env = env
get_params = Rack::Request.new(new_env).GET
get_params.delete('profile')
get_params.delete('times')
get_params.delete('printer')
get_params.delete('ignore')
get_params.delete('focus')
new_env.delete('rack.request.query_string')
new_env.delete('rack.request.query_hash')
new_env['QUERY_STRING'] = build_query(get_params)
new_env
end
|
#response ⇒ Object
32
33
34
|
# File 'lib/rack/perftools_profiler/profile_once.rb', line 32
def response
@middleware.profiler_data_response(@profiler.data(@get_params))
end
|