Converts Ruby Backtrace to a String
A Ruby backtrace nicely printed.
First, install it:
gem install backtrace
Then, use it like this to print a backtrace:
require 'backtrace'
begin
# do something dangerous
rescue StandardError => e
puts Backtrace.new(e)
end
A more compact version would use a block:
require 'backtrace'
Backtrace.exec(swallow: true) do
# do something dangerous
end
You 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
end
Sometimes 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')
end
That'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 rake
If it's clean and you don't see any error messages, submit your pull request.