Sha256: c44f7444849f385cf1c9499dd3409e3cf3a2164a0316d0f8d66dd70bb6cf0fcd

Contents?: true

Size: 606 Bytes

Versions: 2

Compression:

Stored size: 606 Bytes

Contents

class NameError
  attr_reader :frame_binding

  IGNORED_CALLERS = [
    /( |`)missing_name'/,
    /( |`)safe_constantize'/
  ].freeze
  private_constant :IGNORED_CALLERS

  def to_s_with_did_you_mean
    msg = original_message
    bt  = caller.first(6)

    msg << did_you_mean?.to_s if IGNORED_CALLERS.all? {|ignored| bt.grep(ignored).empty? }
    msg
  rescue
    original_message
  end

  alias original_message to_s
  alias             to_s to_s_with_did_you_mean

  def did_you_mean?
    finder.did_you_mean?
  end

  def finder
    @finder ||= DidYouMean.finders[self.class.to_s].new(self)
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
did_you_mean-0.9.9-java lib/did_you_mean/core_ext/name_error.rb
did_you_mean-0.9.9 lib/did_you_mean/core_ext/name_error.rb