Class: Telewatts::SenderSupport::SenderReport

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/telewatts/sender_support/sender_report.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.highest_priority_levelObject



69
70
71
# File 'lib/telewatts/sender_support/sender_report.rb', line 69

def highest_priority_level
  log_levels.last
end

.levelsObject

sender report levels in increasing order of priority



61
62
63
# File 'lib/telewatts/sender_support/sender_report.rb', line 61

def levels
  %W{debug info report warn error fatal}
end

.lowest_priority_levelObject



65
66
67
# File 'lib/telewatts/sender_support/sender_report.rb', line 65

def lowest_priority_level
  log_levels.first
end

Instance Method Details

#dump_exception(e) ⇒ Object



19
20
21
22
23
24
# File 'lib/telewatts/sender_support/sender_report.rb', line 19

def dump_exception e
  dump = [e.class.name, e.message]
  dump << e.backtrace
  self.exception_dump = ActiveSupport::JSON.encode dump
  return self    
end

#encode_data(data) ⇒ Object



26
27
28
29
# File 'lib/telewatts/sender_support/sender_report.rb', line 26

def encode_data data
  self.data = ActiveSupport::JSON.encode data
  return self
end

#inspectObject



31
32
33
34
35
# File 'lib/telewatts/sender_support/sender_report.rb', line 31

def inspect
  s = "#{self.created_at} #{self.level.blank? ? '': self.level.upcase} #{self.code || self.message} [id=#{self.id}]"
  s << " [exception dump available]" unless self.exception_dump.blank?
  s
end

#marshal_exception_dumpObject



37
38
39
40
41
42
43
44
# File 'lib/telewatts/sender_support/sender_report.rb', line 37

def marshal_exception_dump
    
  return nil if exception_dump.blank?
  a = ActiveSupport::JSON.decode exception_dump
  e = Exception.new "(#{a[0]}): #{a[1]}"
  e.set_backtrace a[2]
  e
end


46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/telewatts/sender_support/sender_report.rb', line 46

def print_exception
  return nil if exception_dump.blank?
  a = ActiveSupport::JSON.decode exception_dump
  puts "\nException class: #{a[0]}\n\n"
  puts "Message: #{a[1]}\n\n"
  puts "Backtrace:\n\n"
  a[2].each do |line|
    puts line
  end
  puts "\n\n"
  nil
end