Class: Julewire::Rails::RequestFields

Inherits:
Object
  • Object
show all
Defined in:
lib/julewire/rails/request_fields.rb

Constant Summary collapse

REMOTE_IP_ENV_KEY =
"julewire.rails.remote_ip"

Instance Method Summary collapse

Constructor Details

#initialize(request) ⇒ RequestFields

Returns a new instance of RequestFields.



8
9
10
# File 'lib/julewire/rails/request_fields.rb', line 8

def initialize(request)
  @request = request
end

Instance Method Details

#filtered_pathObject



27
28
29
# File 'lib/julewire/rails/request_fields.rb', line 27

def filtered_path
  @request.filtered_path
end

#filtered_urlObject



31
32
33
34
35
# File 'lib/julewire/rails/request_fields.rb', line 31

def filtered_url
  "#{@request.protocol}#{@request.host_with_port}#{filtered_path}"
rescue StandardError
  nil
end

#idObject



12
13
14
15
16
17
# File 'lib/julewire/rails/request_fields.rb', line 12

def id
  value = @request.request_id if @request.respond_to?(:request_id)
  value || header("action_dispatch.request_id") || header("HTTP_X_REQUEST_ID")
rescue StandardError
  nil
end

#methodObject



19
20
21
# File 'lib/julewire/rails/request_fields.rb', line 19

def method
  @request.request_method
end

#pathObject



23
24
25
# File 'lib/julewire/rails/request_fields.rb', line 23

def path
  @request.path
end

#remote_ipObject



41
42
43
44
45
46
47
48
49
50
# File 'lib/julewire/rails/request_fields.rb', line 41

def remote_ip
  env = @request.env if @request.respond_to?(:env)
  return env[REMOTE_IP_ENV_KEY] if env&.key?(REMOTE_IP_ENV_KEY)

  value = @request.remote_ip
  env[REMOTE_IP_ENV_KEY] = value if env
  value
rescue StandardError
  nil
end

#user_agentObject



37
38
39
# File 'lib/julewire/rails/request_fields.rb', line 37

def user_agent
  header("HTTP_USER_AGENT")
end