Converts Ruby Backtrace to a String
A Ruby backtrace nicely printed.
First, install it:
gem install backtraceThen, use it like this to print a backtrace:
require 'backtrace'
begin
# do something dangerous
rescue StandardError => e
puts Backtrace.new(e)
endA more compact version would use a block:
require 'backtrace'
Backtrace.exec(swallow: true) do
# do something dangerous
endYou can also provide a logging facility to log the backtrace:
require 'backtrace'
log = Log.new # it must implement the method error(msg)
Backtrace.exec(swallow: true, log: log) do
# do something dangerous
endSometimes you may need to hide unimportant lines of the backtrace
that are not related to your codebase. You can use the mine argument
of the constructor, which is a regular expression or a string. When it's encountered
in the backtrace, the printing will stop:
require 'backtrace'
begin
# do something dangerous
rescue StandardError => e
puts Backtrace.new(e, mine: 'yegor')
endThat's it.
How to contribute
Read these guidelines. Make sure your build is green before you contribute your pull request. You will need to have Ruby 2.3+ and Bundler installed. Then:
bundle update
bundle exec rakeIf it's clean and you don't see any error messages, submit your pull request.
