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 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,
which are not related to your code base. You can use mine
argument
of the constructor, which is a regular expression or a string. When it's met
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 you 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.