class BloggerException
Constants
- DESCRIPTIONS
Attributes
cause[R]
date[R]
description[R]
file[R]
line[R]
message[R]
scope[R]
time[R]
type[R]
Public Class Methods
new()
click to toggle source
# File lib/BloggerException.rb, line 2 def initialize @file = $0 @line = $!.backtrace[0].split(':')[1] @cause = $!.backtrace[0].split('`')[-1] @message = $!.message @type = $!.class.to_s @description = generate_description(self.type.to_sym) @scope = $!.backtrace[0].split(/\./)[0] @time = Time.now.strftime("%I:%M:%S %p") @date = Time.now.strftime("%m/%d/%y") end
Public Instance Methods
display()
click to toggle source
# File lib/BloggerException.rb, line 32 def display puts <<~MLS \tClass #{self.type} \tDescription: #{self.description} \tLine: #{self.line} \tTime: #{self.time} \tDate: #{self.date} MLS end
generate_description(type)
click to toggle source
# File lib/BloggerException.rb, line 49 def generate_description(type) return DESCRIPTIONS[type] if DESCRIPTIONS.key?(type) return 'Check out https://ruby-doc.org/core-2.7.0/Exception.html for more information.' end
log()
click to toggle source
# File lib/BloggerException.rb, line 42 def log File.open('structured_exceptions.yml', 'a+') do |file| file.write (self.to_yaml) end puts 'Bug Logged Successfully:' end
to_s()
click to toggle source
# File lib/BloggerException.rb, line 19 def to_s <<~MLS :file: #{file} :line: #{line} :cause: #{cause} :message: #{message} :type: #{type} :description #{description} :scope: #{scope} :time: #{time} MLS end