class StackifyRubyAPM::ContextBuilder
@api private
Public Class Methods
new(_agent)
click to toggle source
# File lib/stackify_apm/context_builder.rb, line 9 def initialize(_agent); end
Public Instance Methods
build(rack_env)
click to toggle source
Creates context
# File lib/stackify_apm/context_builder.rb, line 13 def build(rack_env) context = Context.new apply_to_request(context, rack_env) context end
Private Instance Methods
apply_to_request(context, rack_env)
click to toggle source
Request format and values are assigned to context
# File lib/stackify_apm/context_builder.rb, line 23 def apply_to_request(context, rack_env) req = rails_req?(rack_env) ? rack_env : Rack::Request.new(rack_env) context.request = Context::Request.new unless context.request request = context.request request.method = req.request_method request.url = Context::Request::Url.new(req).to_h request.body = get_body(req) request.headers = Context::Request::Headers.new(req).values context end
get_body(req)
click to toggle source
# File lib/stackify_apm/context_builder.rb, line 35 def get_body(req) return req.POST if req.form_data? body = req.body.read req.body.rewind body end
rails_req?(env)
click to toggle source
# File lib/stackify_apm/context_builder.rb, line 43 def rails_req?(env) # Not used # Possible use of ActiveSupport.on_load(:action_dispatch_request) defined?(ActionDispatch::Request) && env.is_a?(ActionDispatch::Request) end