Showing /app/app/views/bluebook/products/show.html.slim where line #259 raised:
bad URI(is not URI?): "http://www.holtmods.com/small speakers3.htm"
Extracted source (around line #67):
65
66
67
68
69
70
|
]
else
raise InvalidURIError, "bad URI(is not URI?): #{uri.inspect}"
end
end
|
Extracted source (around line #73):
71
72
73
74
75
76
|
def parse(uri) # :nodoc:
scheme, userinfo, host, port,
registry, path, opaque, query, fragment = self.split(uri)
scheme_list = URI.scheme_list
if scheme && scheme_list.include?(uc = scheme.upcase)
scheme_list[uc].new(scheme, userinfo, host, port,
|
Extracted source (around line #234):
232
233
234
235
236
237
|
#
def self.parse(uri)
RFC3986_PARSER.parse(uri)
end
#
|
Extracted source (around line #8):
6
7
8
9
10
11
|
def convert_http_to_https(url)
uri = URI.parse(url)
uri.scheme = "https"
uri.to_s
|
Extracted source (around line #259):
257
258
259
260
261
262
|
td
- if link.url.present?
= link_to convert_http_to_https(link.url), convert_http_to_https(link.url), target: '_blank'
- else
| #{link.source_name}: #{link.locator}
/ Image Gallery.
|
Extracted source (around line #71):
69
70
71
72
73
74
|
# for each different klass, and the delegations are compiled into that subclass only.
delegate :to_xml, :encode_with, :length, :each, :uniq, :join,
:[], :&, :|, :+, :-, :sample, :reverse, :rotate, :compact, :in_groups, :in_groups_of,
:to_sentence, :to_formatted_s, :as_json,
:shuffle, :split, :slice, :index, :rindex, to: :records
|
Extracted source (around line #71):
69
70
71
72
73
74
|
# for each different klass, and the delegations are compiled into that subclass only.
delegate :to_xml, :encode_with, :length, :each, :uniq, :join,
:[], :&, :|, :+, :-, :sample, :reverse, :rotate, :compact, :in_groups, :in_groups_of,
:to_sentence, :to_formatted_s, :as_json,
:shuffle, :split, :slice, :index, :rindex, to: :records
|
Extracted source (around line #253):
251
252
253
254
255
256
|
| Info
tbody
- @links.where.not(source_name: ['Audiogon', 'AudiogoN']).each do |link|
tr
td
| #{link.try(:source_name)}
|
Extracted source (around line #159):
157
158
159
160
161
162
|
instrument_render_template do
compile!(view)
view.send(method_name, locals, buffer, &block)
end
rescue => e
handle_render_error(view, e)
|
Extracted source (around line #168):
166
167
168
169
170
171
|
def instrument(name, payload = {})
if notifier.listening?(name)
instrumenter.instrument(name, payload) { yield payload if block_given? }
else
yield payload if block_given?
end
|
Extracted source (around line #23):
21
22
23
24
25
26
|
listeners_state = start name, payload
begin
yield payload
rescue Exception => e
payload[:exception] = [e.class.name, e.message]
payload[:exception_object] = e
|
Extracted source (around line #168):
166
167
168
169
170
171
|
def instrument(name, payload = {})
if notifier.listening?(name)
instrumenter.instrument(name, payload) { yield payload if block_given? }
else
yield payload if block_given?
end
|
Extracted source (around line #354):
352
353
354
355
356
357
|
def instrument_render_template(&block)
ActiveSupport::Notifications.instrument("!render_template.action_view".freeze, instrument_payload, &block)
end
def instrument_payload
|
Extracted source (around line #157):
155
156
157
158
159
160
|
# consume this in production. This is only slow if it's being listened to.
def render(view, locals, buffer = nil, &block)
instrument_render_template do
compile!(view)
view.send(method_name, locals, buffer, &block)
end
|
Extracted source (around line #54):
52
53
54
55
56
57
|
render_with_layout(layout_name, locals) do |layout|
instrument(:template, identifier: template.identifier, layout: layout.try(:virtual_path)) do
template.render(view, locals) { |*name| view._layout_for(*name) }
end
end
end
|
Extracted source (around line #44):
42
43
44
45
46
47
|
ActiveSupport::Notifications.instrument("render_#{name}.action_view", options) do |payload|
yield payload
end
end
|
Extracted source (around line #168):
166
167
168
169
170
171
|
def instrument(name, payload = {})
if notifier.listening?(name)
instrumenter.instrument(name, payload) { yield payload if block_given? }
else
yield payload if block_given?
end
|
Extracted source (around line #23):
21
22
23
24
25
26
|
listeners_state = start name, payload
begin
yield payload
rescue Exception => e
payload[:exception] = [e.class.name, e.message]
payload[:exception_object] = e
|
Extracted source (around line #168):
166
167
168
169
170
171
|
def instrument(name, payload = {})
if notifier.listening?(name)
instrumenter.instrument(name, payload) { yield payload if block_given? }
else
yield payload if block_given?
end
|
Extracted source (around line #43):
41
42
43
44
45
46
|
options[:identifier] ||= (@template && @template.identifier) || @path
ActiveSupport::Notifications.instrument("render_#{name}.action_view", options) do |payload|
yield payload
end
end
|
Extracted source (around line #53):
51
52
53
54
55
56
|
render_with_layout(layout_name, locals) do |layout|
instrument(:template, identifier: template.identifier, layout: layout.try(:virtual_path)) do
template.render(view, locals) { |*name| view._layout_for(*name) }
end
end
|
Extracted source (around line #61):
59
60
61
62
63
64
|
def render_with_layout(path, locals)
layout = path && find_layout(path, locals.keys, [formats.first])
content = yield(layout)
if layout
view = @view
|
Extracted source (around line #52):
50
51
52
53
54
55
|
view, locals = @view, locals || {}
render_with_layout(layout_name, locals) do |layout|
instrument(:template, identifier: template.identifier, layout: layout.try(:virtual_path)) do
template.render(view, locals) { |*name| view._layout_for(*name) }
end
|
Extracted source (around line #149):
147
148
149
150
151
152
|
begin
req.start_layer(layer)
super(*args)
ensure
req.stop_layer
end
|
Extracted source (around line #16):
14
15
16
17
18
19
|
@lookup_context.rendered_format ||= (template.formats.first || formats.first)
render_template(template, options[:layout], options[:locals])
end
private
|
Extracted source (around line #44):
42
43
44
45
46
47
|
# Direct access to template rendering.
def render_template(context, options) #:nodoc:
TemplateRenderer.new(@lookup_context).render(context, options)
end
# Direct access to partial rendering.
|
Extracted source (around line #25):
23
24
25
26
27
28
|
render_partial(context, options)
else
render_template(context, options)
end
end
|
Extracted source (around line #103):
101
102
103
104
105
106
|
lookup_context.variants = variant if variant
view_renderer.render(context, options)
end
# Assign the rendered format to look up context.
|
Extracted source (around line #219):
217
218
219
220
221
222
|
Rack::Chunked::Body.new view_renderer.render_body(view_context, options)
else
super
end
end
end
|
Extracted source (around line #84):
82
83
84
85
86
87
|
def render_to_body(options = {})
_process_options(options)
_render_template(options)
end
def rendered_format
|
Extracted source (around line #52):
50
51
52
53
54
55
|
def render_to_body(options = {})
super || _render_in_priorities(options) || " "
end
private
|
Extracted source (around line #142):
140
141
142
143
144
145
|
# <tt>ActionView::Rendering.render_to_body</tt>, if present.
def render_to_body(options)
_render_to_body_with_renderer(options) || super
end
def _render_to_body_with_renderer(options)
|
Extracted source (around line #25):
23
24
25
26
27
28
|
def render(*args, &block)
options = _normalize_render(*args, &block)
rendered_body = render_to_body(options)
if options[:html]
_set_html_content_type
else
|
Extracted source (around line #36):
34
35
36
37
38
39
|
def render(*args) #:nodoc:
raise ::AbstractController::DoubleRenderError if response_body
super
end
# Overwrite render_to_string because body can now be set to a Rack body.
|
Extracted source (around line #46):
44
45
46
47
48
49
|
render_output = nil
self.view_runtime = cleanup_view_runtime do
Benchmark.ms { render_output = super }
end
render_output
end
|
Extracted source (around line #14):
12
13
14
15
16
|
# # => 0.074
def ms
1000 * realtime { yield }
end
end
|
Extracted source (around line #308):
306
307
308
309
310
311
|
def realtime # :yield:
r0 = Process.clock_gettime(Process::CLOCK_MONOTONIC)
yield
Process.clock_gettime(Process::CLOCK_MONOTONIC) - r0
end
|
Extracted source (around line #14):
12
13
14
15
16
|
# # => 0.074
def ms
1000 * realtime { yield }
end
end
|
Extracted source (around line #46):
44
45
46
47
48
49
|
render_output = nil
self.view_runtime = cleanup_view_runtime do
Benchmark.ms { render_output = super }
end
render_output
end
|
Extracted source (around line #87):
85
86
87
88
89
90
|
# end
def cleanup_view_runtime # :doc:
yield
end
# Every time after an action is processed, this method is invoked
|
Extracted source (around line #31):
29
30
31
32
33
34
|
db_rt_before_render = ActiveRecord::LogSubscriber.reset_runtime
self.db_runtime = (db_runtime || 0) + db_rt_before_render
runtime = super
db_rt_after_render = ActiveRecord::LogSubscriber.reset_runtime
self.db_runtime += db_rt_after_render
runtime - db_rt_after_render
|
Extracted source (around line #45):
43
44
45
46
47
48
|
def render(*args)
render_output = nil
self.view_runtime = cleanup_view_runtime do
Benchmark.ms { render_output = super }
end
render_output
|
Extracted source (around line #35):
33
34
35
36
37
38
|
def default_render(*args)
if template_exists?(action_name.to_s, _prefixes, variants: request.variant)
render(*args)
elsif any_templates?(action_name.to_s, _prefixes)
message = "#{self.class.name}\##{action_name} is missing a template " \
"for this request format and variant.\n" \
|
Extracted source (around line #6):
4
5
6
7
8
9
|
module BasicImplicitRender # :nodoc:
def send_action(method, *args)
super.tap { default_render unless performed? }
end
def default_render(*args)
|
Extracted source (around line #6):
4
5
6
7
8
9
|
module BasicImplicitRender # :nodoc:
def send_action(method, *args)
super.tap { default_render unless performed? }
end
def default_render(*args)
|
Extracted source (around line #6):
4
5
6
7
8
9
|
module BasicImplicitRender # :nodoc:
def send_action(method, *args)
super.tap { default_render unless performed? }
end
def default_render(*args)
|
Extracted source (around line #194):
192
193
194
195
196
197
|
# which is *not* necessarily the same as the action name.
def process_action(method_name, *args)
send_action(method_name, *args)
end
# Actually call the method associated with the action. Override
|
Extracted source (around line #103):
101
102
103
104
105
106
|
# AutoInstrument, but could be another custom instrument)
if current_layer && (current_layer.type == "Controller" || current_layer.type == "AutoInstrument" || req.web?)
super
else
begin
uri = scout_transaction_uri
|
Extracted source (around line #30):
28
29
30
31
32
33
|
def process_action(*) #:nodoc:
self.formats = request.formats.map(&:ref).compact
super
end
# Check for double render errors and set the content_type after rendering.
|
Extracted source (around line #42):
40
41
42
43
44
45
|
def process_action(*args)
run_callbacks(:process_action) do
super
end
end
|
Extracted source (around line #109):
107
108
109
110
111
112
|
current.invoke_before(env)
if current.final?
env.value = !env.halted && (!block_given? || yield)
elsif current.skip?(env)
(skipped ||= []) << current
next_sequence = next_sequence.nested
|
Extracted source (around line #24):
22
23
24
25
26
27
|
def around(controller)
before(controller)
yield
after(controller)
ensure
clean_up
|
Extracted source (around line #118):
116
117
118
119
120
121
|
begin
target, block, method, *arguments = current.expand_call_template(env, invoke_sequence)
target.send(method, *arguments, &block)
ensure
next_sequence = current
end
|
Extracted source (around line #16):
14
15
16
17
18
19
|
self.controller = controller
STORED_DATA.each { |k, m| store[k] = send(m) }
yield
ensure
self.controller = nil
STORED_DATA.keys.each { |k| store.delete(k) }
|
Extracted source (around line #118):
116
117
118
119
120
121
|
begin
target, block, method, *arguments = current.expand_call_template(env, invoke_sequence)
target.send(method, *arguments, &block)
ensure
next_sequence = current
end
|
Extracted source (around line #16):
14
15
16
17
18
19
|
self.controller = controller
STORED_DATA.each { |k, m| store[k] = send(m) }
yield
ensure
self.controller = nil
STORED_DATA.keys.each { |k| store.delete(k) }
|
Extracted source (around line #118):
116
117
118
119
120
121
|
begin
target, block, method, *arguments = current.expand_call_template(env, invoke_sequence)
target.send(method, *arguments, &block)
ensure
next_sequence = current
end
|
Extracted source (around line #136):
134
135
136
137
138
139
|
env.value
else
invoke_sequence.call
end
end
end
|
Extracted source (around line #41):
39
40
41
42
43
44
|
# <tt>process_action</tt> callbacks around the normal behavior.
def process_action(*args)
run_callbacks(:process_action) do
super
end
end
|
Extracted source (around line #22):
20
21
22
23
24
25
|
private
def process_action(*args)
super
rescue Exception => exception
request.env["action_dispatch.show_detailed_exceptions"] ||= show_detailed_exceptions?
rescue_with_handler(exception) || raise
|
Extracted source (around line #34):
32
33
34
35
36
37
|
ActiveSupport::Notifications.instrument("process_action.action_controller", raw_payload) do |payload|
begin
result = super
payload[:status] = response.status
result
ensure
|
Extracted source (around line #168):
166
167
168
169
170
171
|
def instrument(name, payload = {})
if notifier.listening?(name)
instrumenter.instrument(name, payload) { yield payload if block_given? }
else
yield payload if block_given?
end
|
Extracted source (around line #23):
21
22
23
24
25
26
|
listeners_state = start name, payload
begin
yield payload
rescue Exception => e
payload[:exception] = [e.class.name, e.message]
payload[:exception_object] = e
|
Extracted source (around line #168):
166
167
168
169
170
171
|
def instrument(name, payload = {})
if notifier.listening?(name)
instrumenter.instrument(name, payload) { yield payload if block_given? }
else
yield payload if block_given?
end
|
Extracted source (around line #32):
30
31
32
33
34
35
|
ActiveSupport::Notifications.instrument("start_processing.action_controller", raw_payload.dup)
ActiveSupport::Notifications.instrument("process_action.action_controller", raw_payload) do |payload|
begin
result = super
payload[:status] = response.status
|
Extracted source (around line #256):
254
255
256
257
258
259
|
request.filtered_parameters.merge! wrapped_filtered_hash
end
super
end
private
|
Extracted source (around line #24):
22
23
24
25
26
27
|
# and it won't be cleaned up by the method below.
ActiveRecord::LogSubscriber.reset_runtime
super
end
def cleanup_view_runtime
|
Extracted source (around line #120):
118
119
120
121
122
123
|
req.start_layer( ScoutApm::Layer.new("Controller", "#{controller_path}/#{resolved_name}") )
begin
super
rescue
req.error!
raise
|
Extracted source (around line #134):
132
133
134
135
136
137
|
@_response_body = nil
process_action(action_name, *args)
end
# Delegates to the class' ::controller_path
|
Extracted source (around line #32):
30
31
32
33
34
35
|
def process(*) #:nodoc:
old_config, I18n.config = I18n.config, I18nProxy.new(I18n.config, lookup_context)
super
ensure
I18n.config = old_config
end
|
Extracted source (around line #191):
189
190
191
192
193
194
|
set_request!(request)
set_response!(response)
process(name)
request.commit_flash
to_a
end
|
Extracted source (around line #252):
250
251
252
253
254
255
|
middleware_stack.build(name) { |env| new.dispatch(name, req, res) }.call req.env
else
new.dispatch(name, req, res)
end
end
end
|
Extracted source (around line #52):
50
51
52
53
54
55
|
def dispatch(controller, action, req, res)
controller.dispatch(action, req, res)
end
end
|
Extracted source (around line #34):
32
33
34
35
36
37
|
controller = controller req
res = controller.make_response! req
dispatch(controller, params[:action], req, res)
rescue ActionController::RoutingError
if @raise_on_name_error
raise
|
Extracted source (around line #52):
50
51
52
53
54
55
|
req.path_parameters = set_params.merge parameters
status, headers, body = route.app.serve(req)
if "pass" == headers["X-Cascade"]
req.script_name = script_name
|
Extracted source (around line #35):
33
34
35
36
37
38
|
def serve(req)
find_routes(req).each do |match, parameters, route|
set_params = req.path_parameters
path_info = req.path_info
script_name = req.script_name
|
Extracted source (around line #35):
33
34
35
36
37
38
|
def serve(req)
find_routes(req).each do |match, parameters, route|
set_params = req.path_parameters
path_info = req.path_info
script_name = req.script_name
|
Extracted source (around line #840):
838
839
840
841
842
843
|
req = make_request(env)
req.path_info = Journey::Router::Utils.normalize_path(req.path_info)
@router.serve(req)
end
def recognize_path(path, environment = {})
|
Extracted source (around line #29):
27
28
29
30
31
32
|
begin
call_without_scout_instruments(*args)
ensure
req.stop_layer
end
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #192):
190
191
192
193
194
195
|
return other_phase if respond_to?(:other_phase)
@app.call(env)
end
# Responds to an OPTIONS request.
|
Extracted source (around line #169):
167
168
169
170
171
172
|
# @param [Hash] The Rack environment.
def call(env)
dup.call!(env)
end
# The logic for dispatching any additional actions that need
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #10):
8
9
10
11
12
13
|
def call(env)
Rakismet.set_request_vars(env)
response = @app.call(env)
Rakismet.clear_request
response
end
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #17):
15
16
17
18
19
20
|
def call(env)
if !@enabled || @started || @attempts > MAX_ATTEMPTS
@app.call(env)
else
attempt_to_start_agent
@app.call(env)
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #18):
16
17
18
19
20
21
|
[301, {'Location' => location, 'Content-Type' => 'text/html', 'Content-Length' => '0'}, []]
else
@app.call(env)
end
end
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #36):
34
35
36
37
38
39
|
result = catch(:warden) do
env['warden'].on_request
@app.call(env)
end
result ||= {}
|
Extracted source (around line #34):
32
33
34
35
36
37
|
env['warden'] = Proxy.new(env, self)
result = catch(:warden) do
env['warden'].on_request
@app.call(env)
end
|
Extracted source (around line #34):
32
33
34
35
36
37
|
env['warden'] = Proxy.new(env, self)
result = catch(:warden) do
env['warden'].on_request
@app.call(env)
end
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #15):
13
14
15
16
17
18
|
def call(env)
env[RACK_TEMPFILES] ||= []
status, headers, body = @app.call(env)
body_proxy = BodyProxy.new(body) do
env[RACK_TEMPFILES].each(&:close!) unless env[RACK_TEMPFILES].nil?
end
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #27):
25
26
27
28
29
30
|
def call(env)
status, headers, body = @app.call(env)
headers = Utils::HeaderHash[headers]
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #27):
25
26
27
28
29
30
|
case env[REQUEST_METHOD]
when "GET", "HEAD"
status, headers, body = @app.call(env)
headers = Utils::HeaderHash[headers]
if status == 200 && fresh?(env, headers)
status = 304
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #12):
10
11
12
13
14
15
|
def call(env)
status, headers, body = @app.call(env)
if env[REQUEST_METHOD] == HEAD
[
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #18):
16
17
18
19
20
21
|
def call(env)
request = ActionDispatch::Request.new env
_, headers, _ = response = @app.call(env)
return response if policy_present?(headers)
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #266):
264
265
266
267
268
269
|
req = make_request env
prepare_session(req)
status, headers, body = app.call(req.env)
res = Rack::Response::Raw.new status, headers
commit_session(req, res)
[status, headers, body]
|
Extracted source (around line #260):
258
259
260
261
262
263
|
def call(env)
context(env)
end
def context(env, app = @app)
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #670):
668
669
670
671
672
673
|
request = ActionDispatch::Request.new env
status, headers, body = @app.call(env)
if request.have_cookie_jar?
cookie_jar = request.cookie_jar
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #28):
26
27
28
29
30
31
|
result = run_callbacks :call do
begin
@app.call(env)
rescue => error
end
end
|
Extracted source (around line #98):
96
97
98
99
100
101
|
if callbacks.empty?
yield if block_given?
else
env = Filters::Environment.new(self, false, nil)
next_sequence = callbacks.compile
|
Extracted source (around line #26):
24
25
26
27
28
29
|
def call(env)
error = nil
result = run_callbacks :call do
begin
@app.call(env)
rescue => error
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #34):
32
33
34
35
36
37
|
begin
response = @app.call(env)
rescue Exception => ex # rubocop:disable Lint/RescueException
notify_airbrake(ex)
raise ex
|
Extracted source (around line #23):
21
22
23
24
25
26
|
# @see https://github.com/airbrake/airbrake/issues/904
def call(env)
dup.call!(env)
end
# Rescues any exceptions, sends them to Airbrake and re-raises the
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #19):
17
18
19
20
21
22
|
call_with_appsignal_monitoring(env)
else
@app.call(env)
end
end
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #62):
60
61
62
63
64
65
|
better_errors_call env
else
@app.call env
end
end
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #61):
59
60
61
62
63
64
|
def call(env)
request = ActionDispatch::Request.new env
_, headers, body = response = @app.call(env)
if headers["X-Cascade"] == "pass"
body.close if body.respond_to?(:close)
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #33):
31
32
33
34
35
36
|
def call(env)
request = ActionDispatch::Request.new env
@app.call(env)
rescue Exception => exception
if request.show_exceptions?
render_exception(request, exception)
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #18):
16
17
18
19
20
21
|
def call_app(*args)
env = args.last
status, headers, body = @app.call(env)
# needs to have same return type as the Rails builtins being overridden, see https://github.com/roidrage/lograge/pull/333
# https://github.com/rails/rails/blob/be9d34b9bcb448b265114ebc28bef1a5b5e4c272/railties/lib/rails/rack/logger.rb#L37
[status, headers, ::Rack::BodyProxy.new(body) {}] # rubocop:disable Lint/EmptyBlock
|
Extracted source (around line #26):
24
25
26
27
28
29
|
if logger.respond_to?(:tagged)
logger.tagged(compute_tags(request)) { call_app(request, env) }
else
call_app(request, env)
end
|
Extracted source (around line #71):
69
70
71
72
73
74
|
def tagged(*tags)
formatter.tagged(*tags) { yield self }
end
def flush
|
Extracted source (around line #28):
26
27
28
29
30
31
|
def tagged(*tags)
new_tags = push_tags(*tags)
yield self
ensure
pop_tags(new_tags.size)
end
|
Extracted source (around line #71):
69
70
71
72
73
74
|
def tagged(*tags)
formatter.tagged(*tags) { yield self }
end
def flush
|
Extracted source (around line #26):
24
25
26
27
28
29
|
if logger.respond_to?(:tagged)
logger.tagged(compute_tags(request)) { call_app(request, env) }
else
call_app(request, env)
end
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #81):
79
80
81
82
83
84
|
req = ActionDispatch::Request.new env
req.remote_ip = GetIp.new(req, check_ip, proxies)
@app.call(req.env)
end
# The GetIp class exists as a way to defer processing of the request data
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #19):
17
18
19
20
21
22
|
RequestStore.begin!
status, headers, body = @app.call(env)
body = Rack::BodyProxy.new(body) do
RequestStore.end!
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #27):
25
26
27
28
29
30
|
req = ActionDispatch::Request.new env
req.request_id = make_request_id(req.x_request_id)
@app.call(env).tap { |_status, headers, _body| headers[X_REQUEST_ID] = req.request_id }
end
private
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #24):
22
23
24
25
26
27
|
end
@app.call(env)
end
def method_override(env)
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #22):
20
21
22
23
24
25
|
def call(env)
start_time = Utils.clock_time
status, headers, body = @app.call(env)
headers = Utils::HeaderHash[headers]
request_time = Utils.clock_time - start_time
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #148):
146
147
148
149
150
151
|
response = timeout.timeout(info.timeout) do # perform request with timeout
begin @app.call(env) # boom, send request down the middleware chain
rescue RequestTimeoutException => e # will actually hardly ever get to this point because frameworks tend to catch this. see README for more
raise RequestTimeoutError.new(env), e.message, e.backtrace # but in case it does get here, re-raise RequestTimeoutException as RequestTimeoutError
ensure
|
Extracted source (around line #19):
17
18
19
20
21
22
|
thr = Thread.current # reference to current thread to be used in timeout thread
job = @scheduler.run_in(secs) { @on_timeout.call thr } # schedule this thread to be timed out; should get cancelled if block completes on time
return block.call # do what you gotta do
ensure #
job.cancel! if job # cancel the scheduled timeout job; if the block completed on time, this
end # will get called before the timeout code's had a chance to run.
|
Extracted source (around line #147):
145
146
147
148
149
150
|
end
response = timeout.timeout(info.timeout) do # perform request with timeout
begin @app.call(env) # boom, send request down the middleware chain
rescue RequestTimeoutException => e # will actually hardly ever get to this point because frameworks tend to catch this. see README for more
raise RequestTimeoutError.new(env), e.message, e.backtrace # but in case it does get here, re-raise RequestTimeoutException as RequestTimeoutError
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #29):
27
28
29
30
31
32
|
def call(env)
LocalCacheRegistry.set_cache_for(local_cache_key, LocalStore.new)
response = @app.call(env)
response[2] = ::Rack::BodyProxy.new(response[2]) do
LocalCacheRegistry.set_cache_for(local_cache_key, nil)
end
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #14):
12
13
14
15
16
17
|
state = @executor.run!(reset: true)
begin
response = @app.call(env)
returned = response << ::Rack::BodyProxy.new(response.pop) { state.complete! }
ensure
state.complete! unless returned
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #127):
125
126
127
128
129
130
|
end
@app.call(req.env)
end
end
end
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #17):
15
16
17
18
19
20
|
def call(env)
FontAssetsRequest.new(self, env).do_request do
@app.call(env)
end
end
|
Extracted source (around line #40):
38
39
40
41
42
43
|
end
else
yield
end
end
|
Extracted source (around line #16):
14
15
16
17
18
19
|
def call(env)
FontAssetsRequest.new(self, env).do_request do
@app.call(env)
end
end
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #44):
42
43
44
45
46
47
|
def call(env)
status, headers, body = @app.call(env)
headers = Utils::HeaderHash[headers]
unless should_deflate?(env, status, headers, body)
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #110):
108
109
110
111
112
113
|
def call(env)
status, headers, body = @app.call(env)
if body.respond_to?(:to_path)
case type = variation(env)
when 'X-Accel-Redirect'
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #74):
72
73
74
75
76
77
|
if request.ssl?
@app.call(env).tap do |status, headers, body|
set_hsts_header! headers
end
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #21):
19
20
21
22
23
24
|
def call(env)
@app.call(sanitize_env(env))
end
private
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #191):
189
190
191
192
193
194
|
return client_settings.handle_cookie(take_snapshot(env, start))
else
return client_settings.handle_cookie(@app.call(env))
end
end
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #58):
56
57
58
59
60
61
|
layer = ScoutApm::Layer.new("Middleware", "Summary")
req.start_layer(layer)
@app.call(env)
ensure
req.stop_layer
end
|
Extracted source (around line #524):
522
523
524
525
526
527
|
def call(env)
req = build_request env
app.call req.env
end
# Defines additional Rack env configuration that is added on each call.
|
Extracted source (around line #190):
188
189
190
191
192
193
|
def method_missing(name, *args, &block)
if instance.respond_to?(name)
instance.public_send(name, *args, &block)
else
super
end
|
Extracted source (around line #190):
188
189
190
191
192
193
|
def method_missing(name, *args, &block)
if instance.respond_to?(name)
instance.public_send(name, *args, &block)
else
super
end
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #161):
159
160
161
162
163
164
|
response
else
@app.call(env)
end
end
|
Extracted source (around line #99):
97
98
99
100
101
102
|
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
|
Extracted source (around line #272):
270
271
272
273
274
275
|
def call(env)
env[Const::PUMA_CONFIG] = @config
@app.call(env)
end
end
|
Extracted source (around line #100):
98
99
100
101
102
103
|
if @supported_http_methods == :any || @supported_http_methods.key?(env[REQUEST_METHOD])
status, headers, app_body = @thread_pool.with_force_shutdown do
@app.call(env)
end
else
@log_writer.log "Unsupported HTTP method used: #{env[REQUEST_METHOD]}"
|
Extracted source (around line #378):
376
377
378
379
380
381
|
t[:with_force_shutdown] = true
end
yield
ensure
t[:with_force_shutdown] = false
end
|
Extracted source (around line #99):
97
98
99
100
101
102
|
begin
if @supported_http_methods == :any || @supported_http_methods.key?(env[REQUEST_METHOD])
status, headers, app_body = @thread_pool.with_force_shutdown do
@app.call(env)
end
else
|
Extracted source (around line #443):
441
442
443
444
445
446
|
while true
@requests_count += 1
case handle_request(client, requests + 1)
when false
break
when :async
|
Extracted source (around line #241):
239
240
241
242
243
244
|
@status = :run
@thread_pool = ThreadPool.new(thread_name, @options) { |client| process_client client }
if @queue_requests
@reactor = Reactor.new(@io_selector_backend) { |c| reactor_wakeup c }
|
Extracted source (around line #155):
153
154
155
156
157
158
|
begin
@out_of_band_pending = true if block.call(work)
rescue Exception => e
STDERR.puts "Error reached top of thread-pool: #{e.message} (#{e.class})"
end
|
Extracted source (around line #433):
431
432
433
434
435
436
|
end
NewRelic::Agent::Tracer.capture_segment_error(segment) do
yield(*args)
end
ensure
::NewRelic::Agent::Transaction::Segment.finish(segment)
|
Extracted source (around line #357):
355
356
357
358
359
360
|
return unless block_given?
yield
rescue => exception
# needs else branch coverage
segment.notice_error(exception) if segment&.is_a?(Transaction::AbstractSegment)
|
Extracted source (around line #432):
430
431
432
433
434
435
|
segment = NewRelic::Agent::Tracer.start_segment(name: segment_name, parent: parent)
end
NewRelic::Agent::Tracer.capture_segment_error(segment) do
yield(*args)
end
ensure
|
Rails.root: /app
Request
Parameters:
{"brand_id"=>"nht", "id"=>"nht-super-one"}
GATEWAY_INTERFACE: "CGI/1.2"
HTTP_ACCEPT: "*/*"
HTTP_ACCEPT_ENCODING: "gzip, br"
HTTP_VERSION: "HTTP/1.1"
HTTP_X_FORWARDED_FOR: "3.238.233.189, 172.70.134.191"
HTTP_X_REQUEST_ID: "1d3ac3d9-cc5f-49f7-98e6-9226d525cf51"
ORIGINAL_SCRIPT_NAME: ""
REMOTE_ADDR: "10.1.33.122"
SERVER_NAME: "www.audiogonstaging.com"
SERVER_PROTOCOL: "HTTP/1.1"
Response
Headers:
None