Class: YogiBerra::Data
- Inherits:
-
Object
- Object
- YogiBerra::Data
- Defined in:
- lib/yogi_berra/data.rb
Class Method Summary collapse
- .parse_exception(notice) ⇒ Object
- .parse_session(session) ⇒ Object
- .store!(exception, environment = nil) ⇒ Object
Class Method Details
.parse_exception(notice) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/yogi_berra/data.rb', line 15 def self.parse_exception(notice) data_hash = { :error_class => "#{notice.exception.class}", :project => YogiBerra::Catcher.settings["project"], :error_message => notice.respond_to?(:error_message) ? notice. : notice. } data_hash[:backtraces] = notice.backtrace if notice.backtrace.respond_to?(:lines) && notice.backtrace.lines.any? data_hash[:backtraces] = notice.backtrace.lines.collect(&:to_s) end data_hash[:created_at] = Time.now.utc data_hash end |
.parse_session(session) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/yogi_berra/data.rb', line 29 def self.parse_session(session) session.inject({}) do |result, element| key = element.first value = element.last if value.respond_to?(:as_json) result[key] = value.as_json(:except => ["password"]) else value.delete("password") result[key] = value end result end end |
.store!(exception, environment = nil) ⇒ Object
5 6 7 8 9 10 11 12 13 |
# File 'lib/yogi_berra/data.rb', line 5 def self.store!(exception, environment = nil) data = parse_exception(exception) if environment session = environment.delete(:session) data[:session] = parse_session(session) if session data.merge!(environment) end YogiBerra::Catcher.connection["caught_exceptions"].insert(data) end |