Class: ExceptionHandler::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/exception_handler/parser.rb

Overview

Parse

Instance Method Summary collapse

Constructor Details

#initialize(exception, request, controller) ⇒ Parser

Init



38
39
40
# File 'lib/exception_handler/parser.rb', line 38

def initialize(exception, request, controller)
	@exception, @request, @controller = exception, request, controller
end

Instance Method Details

#log(info) ⇒ Object

Log



80
81
82
83
84
# File 'lib/exception_handler/parser.rb', line 80

def log(info)
	message = "#{info[:class_name]} (#{info[:message]}):\n "
	message += Rails.backtrace_cleaner.clean(info[:trace].split("\n")).join("\n")
	Rails.logger.fatal(message)
end

#relevant_info(info = {}) ⇒ Object

Info



51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/exception_handler/parser.rb', line 51

def relevant_info(info = {})
	info[:class_name] 	= @exception.class.to_s
	info[:message] 		= @exception.to_s
	info[:trace] 		= @exception.backtrace.join("\n")
	info[:target_url] 	= @request.url
	info[:referer_url] 	= @request.referer
	info[:params] 		= @request.params.inspect
	info[:user_agent] 	= @request.user_agent
	if user
		info[:usable_type] 	= user[:type]
		info[:usable_id] 	= user[:id]
	end
	return info
end

#saveObject

Save



43
44
45
46
47
48
# File 'lib/exception_handler/parser.rb', line 43

def save
	ActiveRecord::Base.logger.silence do
		ExceptionHandler::Error.create(relevant_info)
	end
		log(relevant_info)
end

#user(data = {}) ⇒ Object

User



67
68
69
70
71
72
73
74
75
76
77
# File 'lib/exception_handler/parser.rb', line 67

def user(data = {})
	# => refer to Joe's if want to find admin / user
	if(@controller.respond_to?("current_user"))
		user = @controller.send("current_user")
		[:id].each do |field|
			data[:id] = user.send(field) 	if user.respond_to?(field)
			data[:type] = "User" 			if @controller.respond_to?("current_user")
		end
	end
	return data
end