errors/highlight_keyword_no_parens.rb
tests/_examples/errors/highlight_keyword_no_parens.rb in the metorex repository.
# `highlight:` takes true, false, or nil and nothing else.
problem = begin
raise "meter offline"
rescue => raised
raised
end
shown = problem.full_message highlight: false, order: :top
p shown.include? "meter offline (RuntimeError)"
p problem.detailed_message highlight: nil
begin
problem.full_message highlight: "yes"
rescue ArgumentError => refused
p refused.message
end
begin
problem.detailed_message highlight: 1
rescue ArgumentError => refused
p refused.message
end
# A program's own `set_backtrace` is handed the backtrace `raise` names.
class LoggedError < StandardError
attr_reader :log
def set_backtrace lines
(@log ||= []) << lines
super
end
end
begin
raise LoggedError, "late", ["meter.rb:4"]
rescue LoggedError => caught
p caught.log
p caught.backtrace
end
Output:
true
"meter offline (RuntimeError)"
"expected true or false as highlight: \"yes\""
"expected true or false as highlight: 1"
[["meter.rb:4"]]
["meter.rb:4"]