class Aws::Xray::Request
Public Class Methods
build(method:, url:, user_agent: nil, client_ip: nil, x_forwarded_for: nil, traced: nil)
click to toggle source
# File lib/aws/xray/request.rb, line 9 def build(method:, url:, user_agent: nil, client_ip: nil, x_forwarded_for: nil, traced: nil) new(encode(method), drop_params(encode(url)), encode(user_agent), encode(client_ip), x_forwarded_for, traced) end
build_from_faraday_env(env, traced: false)
click to toggle source
# File lib/aws/xray/request.rb, line 25 def build_from_faraday_env(env, traced: false) build( method: env.method.to_s.upcase, url: env.url.to_s, user_agent: env.request_headers['User-Agent'], client_ip: nil, x_forwarded_for: nil, traced: traced, ) end
build_from_rack_env(env)
click to toggle source
# File lib/aws/xray/request.rb, line 13 def build_from_rack_env(env) req = ::Rack::Request.new(env) build( method: req.request_method, url: req.url, user_agent: req.user_agent, client_ip: req.ip, x_forwarded_for: !!env['HTTP_X_FORWARDED_FOR'], traced: nil, ) end
Private Class Methods
drop_params(str)
click to toggle source
# File lib/aws/xray/request.rb, line 49 def drop_params(str) uri = URI.parse(str) uri.query = nil uri.fragment = nil uri.to_s rescue URI::InvalidURIError str end
encode(str)
click to toggle source
Ensure all strings have same encoding to JSONify them. If the given string has illegal bytes or a undefined byte sequence, replace them with a default character.
# File lib/aws/xray/request.rb, line 41 def encode(str) if str.nil? nil else str.to_s.encode(__ENCODING__, invalid: :replace, undef: :replace, replace: '') end end
Public Instance Methods
to_h()
click to toggle source
Calls superclass method
# File lib/aws/xray/request.rb, line 59 def to_h super.delete_if {|_, v| v.nil? } end