Class: RailsErrorDashboard::ValueObjects::ErrorContext

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_error_dashboard/value_objects/error_context.rb

Overview

Immutable value object representing error context Extracts and normalizes context information from various sources

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(context, source = nil) ⇒ ErrorContext

Returns a new instance of ErrorContext.



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/rails_error_dashboard/value_objects/error_context.rb', line 12

def initialize(context, source = nil)
  @context = context
  @source = source

  @user_id = extract_user_id
  @request_url = build_request_url
  @request_params = extract_params
  @user_agent = extract_user_agent
  @ip_address = extract_ip_address
  @platform = detect_platform
  @controller_name = extract_controller_name
  @action_name = extract_action_name
  @request_id = extract_request_id
  @session_id = extract_session_id
  @http_method = extract_http_method
  @hostname = extract_hostname
  @content_type = extract_content_type
  @request_duration_ms = extract_request_duration_ms
end

Instance Attribute Details

#action_nameObject (readonly)

Returns the value of attribute action_name.



8
9
10
# File 'lib/rails_error_dashboard/value_objects/error_context.rb', line 8

def action_name
  @action_name
end

#content_typeObject (readonly)

Returns the value of attribute content_type.



8
9
10
# File 'lib/rails_error_dashboard/value_objects/error_context.rb', line 8

def content_type
  @content_type
end

#controller_nameObject (readonly)

Returns the value of attribute controller_name.



8
9
10
# File 'lib/rails_error_dashboard/value_objects/error_context.rb', line 8

def controller_name
  @controller_name
end

#hostnameObject (readonly)

Returns the value of attribute hostname.



8
9
10
# File 'lib/rails_error_dashboard/value_objects/error_context.rb', line 8

def hostname
  @hostname
end

#http_methodObject (readonly)

Returns the value of attribute http_method.



8
9
10
# File 'lib/rails_error_dashboard/value_objects/error_context.rb', line 8

def http_method
  @http_method
end

#ip_addressObject (readonly)

Returns the value of attribute ip_address.



8
9
10
# File 'lib/rails_error_dashboard/value_objects/error_context.rb', line 8

def ip_address
  @ip_address
end

#platformObject (readonly)

Returns the value of attribute platform.



8
9
10
# File 'lib/rails_error_dashboard/value_objects/error_context.rb', line 8

def platform
  @platform
end

#request_duration_msObject (readonly)

Returns the value of attribute request_duration_ms.



8
9
10
# File 'lib/rails_error_dashboard/value_objects/error_context.rb', line 8

def request_duration_ms
  @request_duration_ms
end

#request_idObject (readonly)

Returns the value of attribute request_id.



8
9
10
# File 'lib/rails_error_dashboard/value_objects/error_context.rb', line 8

def request_id
  @request_id
end

#request_paramsObject (readonly)

Returns the value of attribute request_params.



8
9
10
# File 'lib/rails_error_dashboard/value_objects/error_context.rb', line 8

def request_params
  @request_params
end

#request_urlObject (readonly)

Returns the value of attribute request_url.



8
9
10
# File 'lib/rails_error_dashboard/value_objects/error_context.rb', line 8

def request_url
  @request_url
end

#session_idObject (readonly)

Returns the value of attribute session_id.



8
9
10
# File 'lib/rails_error_dashboard/value_objects/error_context.rb', line 8

def session_id
  @session_id
end

#user_agentObject (readonly)

Returns the value of attribute user_agent.



8
9
10
# File 'lib/rails_error_dashboard/value_objects/error_context.rb', line 8

def user_agent
  @user_agent
end

#user_idObject (readonly)

Returns the value of attribute user_id.



8
9
10
# File 'lib/rails_error_dashboard/value_objects/error_context.rb', line 8

def user_id
  @user_id
end

Instance Method Details

#to_hObject



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/rails_error_dashboard/value_objects/error_context.rb', line 32

def to_h
  {
    user_id: user_id,
    request_url: request_url,
    request_params: request_params,
    user_agent: user_agent,
    ip_address: ip_address,
    platform: platform,
    controller_name: controller_name,
    action_name: action_name,
    http_method: http_method,
    hostname: hostname,
    content_type: content_type,
    request_duration_ms: request_duration_ms
  }
end