Class: Appsignal::Rack::ApplyRackRequest

Inherits:
Object
  • Object
show all
Defined in:
lib/appsignal/rack.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request, options = {}) ⇒ ApplyRackRequest

Returns a new instance of ApplyRackRequest.



81
82
83
84
85
# File 'lib/appsignal/rack.rb', line 81

def initialize(request, options = {})
  @request = request
  @options = options
  @params_method = options.fetch(:params_method, :params)
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



79
80
81
# File 'lib/appsignal/rack.rb', line 79

def options
  @options
end

#requestObject (readonly)

Returns the value of attribute request.



79
80
81
# File 'lib/appsignal/rack.rb', line 79

def request
  @request
end

Instance Method Details

#apply_to(transaction) ⇒ Object



87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/appsignal/rack.rb', line 87

def apply_to(transaction)
  request_path = request.path
  transaction.("request_path", request_path)
  # TODO: Remove in next major/minor version
  transaction.("path", request_path)

  request_method = Appsignal::Rack::Utils.request_method_from(request)
  if request_method
    transaction.("request_method", request_method)
    # TODO: Remove in next major/minor version
    transaction.("method", request_method)
  end

  transaction.add_request_payload { params_for(request) }
  transaction.add_session_data { session_data_for(request) }
  transaction.add_headers do
    request.env if request.respond_to?(:env)
  end

  queue_start = Appsignal::Rack::Utils.queue_start_from(request.env)
  transaction.set_queue_start(queue_start) if queue_start
end