Class: Exceptional::ControllerExceptionData
Class Method Summary
collapse
Instance Method Summary
collapse
#context_stuff, sanitize_hash, #to_hash, #to_json, #uniqueness_hash
Constructor Details
#initialize(exception, controller = nil, request = nil) ⇒ ControllerExceptionData
Returns a new instance of ControllerExceptionData.
5
6
7
8
9
|
# File 'lib/exceptional/controller_exception_data.rb', line 5
def initialize(exception, controller=nil, request=nil)
super(exception)
@request = request
@controller = controller
end
|
Class Method Details
.sanitize_session(request) ⇒ Object
51
52
53
54
55
56
57
58
59
60
61
62
|
# File 'lib/exceptional/controller_exception_data.rb', line 51
def self.sanitize_session(request)
session = request.session
session_hash = {}
session_hash['session_id'] = request.session_options ? request.session_options[:id] : nil
session_hash['session_id'] ||= session.respond_to?(:session_id) ? session.session_id : session.instance_variable_get("@session_id")
session_hash['data'] = session.respond_to?(:to_hash) ? session.to_hash : session.instance_variable_get("@data") || {}
session_hash['session_id'] ||= session_hash['data'][:session_id]
session_hash['data'].delete(:session_id)
sanitize_hash(session_hash)
rescue
{}
end
|
Instance Method Details
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/exceptional/controller_exception_data.rb', line 15
def
return {} if @request.nil?
{
'request' => {
'url' => "#{@request.protocol}#{@request.host}#{@request.request_uri}",
'controller' => @controller.class.to_s,
'action' => @request.parameters['action'],
'parameters' => filter_paramaters(@request.parameters),
'request_method' => @request.request_method.to_s,
'remote_ip' => @request.remote_ip,
'headers' => (@request.env),
'session' => self.class.sanitize_session(@request)
}
}
end
|
39
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/exceptional/controller_exception_data.rb', line 39
def (env)
= {}
env.select{|k, v| k =~ /^HTTP_/}.each do |name, value|
proper_name = name.sub(/^HTTP_/, '').split('_').map{|upper_case| upper_case.capitalize}.join('-')
[proper_name] = value
end
unless ['Cookie'].nil?
['Cookie'] = ['Cookie'].sub(/_session=\S+/, '_session=[FILTERED]')
end
end
|
#filter_paramaters(hash) ⇒ Object
31
32
33
34
35
36
37
|
# File 'lib/exceptional/controller_exception_data.rb', line 31
def filter_paramaters(hash)
if @controller.respond_to?(:filter_parameters)
@controller.send(:filter_parameters, hash)
else
hash
end
end
|
#framework ⇒ Object
11
12
13
|
# File 'lib/exceptional/controller_exception_data.rb', line 11
def framework
"rails"
end
|