Sha256: 474e055938647c918a1af4969d342a38778575813788024146433a052179c9ec
Contents?: true
Size: 1.27 KB
Versions: 3
Compression:
Stored size: 1.27 KB
Contents
module DidYouMean module Correctable if Exception.method_defined?(:detailed_message) # just for compatibility def original_message # we cannot use alias here because to_s end def detailed_message(highlight: true, did_you_mean: true, **) msg = super.dup return msg unless did_you_mean suggestion = DidYouMean.formatter.message_for(corrections) if highlight suggestion = suggestion.gsub(/.+/) { "\e[1m" + $& + "\e[m" } end msg << suggestion msg rescue super end else SKIP_TO_S_FOR_SUPER_LOOKUP = true private_constant :SKIP_TO_S_FOR_SUPER_LOOKUP def original_message meth = method(:to_s) while meth.owner.const_defined?(:SKIP_TO_S_FOR_SUPER_LOOKUP) meth = meth.super_method end meth.call end def to_s msg = super.dup suggestion = DidYouMean.formatter.message_for(corrections) msg << suggestion if !msg.include?(suggestion) msg rescue super end end def corrections @corrections ||= spell_checker.corrections end def spell_checker DidYouMean.spell_checkers[self.class.to_s].new(self) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
did_you_mean-2.0.0 | lib/did_you_mean/core_ext/name_error.rb |
did_you_mean-1.6.3 | lib/did_you_mean/core_ext/name_error.rb |
did_you_mean-1.6.2 | lib/did_you_mean/core_ext/name_error.rb |