Class: ErrorHandler::Parser
- Inherits:
-
Object
- Object
- ErrorHandler::Parser
- Defined in:
- lib/exception_handler/parser.rb
Instance Method Summary collapse
-
#initialize(exception, request, controller) ⇒ Parser
constructor
Init.
-
#log(info) ⇒ Object
Log.
-
#relevant_info(info = {}) ⇒ Object
Info.
-
#save ⇒ Object
Save.
-
#user(data = {}) ⇒ Object
User.
Constructor Details
#initialize(exception, request, controller) ⇒ Parser
Init
5 6 7 |
# File 'lib/exception_handler/parser.rb', line 5 def initialize(exception, request, controller) @exception, @request, @controller = exception, request, controller end |
Instance Method Details
#log(info) ⇒ Object
Log
47 48 49 50 51 |
# File 'lib/exception_handler/parser.rb', line 47 def log(info) = "#{info[:class_name]} (#{info[:message]}):\n " += Rails.backtrace_cleaner.clean(info[:trace].split("\n")).join("\n") Rails.logger.fatal() end |
#relevant_info(info = {}) ⇒ Object
Info
18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/exception_handler/parser.rb', line 18 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 |
#save ⇒ Object
Save
10 11 12 13 14 15 |
# File 'lib/exception_handler/parser.rb', line 10 def save ActiveRecord::Base.logger.silence do Error.create(relevant_info) end log(relevant_info) end |
#user(data = {}) ⇒ Object
User
34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/exception_handler/parser.rb', line 34 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 |