methods/method_missing_bare_backtrace.rb

tests/_examples/methods/method_missing_bare_backtrace.rb in the metorex repository.

require_relative "method_missing_bare_runner"

class Checker
  include BarePredicates

  def check = acount
end

begin
  Checker.new.check
rescue NameError => error
  puts error.backtrace.first(3).map { |line| line.sub(/\A.*\//, "") }
end

class ExplicitChecker
  include BarePredicates

  def check = self.acount
end

begin
  ExplicitChecker.new.check
rescue NoMethodError => error
  puts error.backtrace.first(2).map { |line| line.sub(/\A.*\//, "") }
end

Output:

method_missing_bare_runner.rb:5:in 'BarePredicates#method_missing'
method_missing_bare_backtrace.rb:6:in 'Checker#check'
method_missing_bare_backtrace.rb:10:in '<main>'
method_missing_bare_runner.rb:5:in 'BarePredicates#method_missing'
method_missing_bare_backtrace.rb:18:in 'ExplicitChecker#check'