Module: DidYouMean::Correctable

Defined in:
lib/did_you_mean/core_ext/name_error.rb

Instance Method Summary collapse

Instance Method Details

#correctionsObject



49
50
51
# File 'lib/did_you_mean/core_ext/name_error.rb', line 49

def corrections
  @corrections ||= spell_checker.corrections
end

#detailed_message(highlight: true, did_you_mean: true) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/did_you_mean/core_ext/name_error.rb', line 10

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

#original_messageObject

just for compatibility



5
6
7
8
# File 'lib/did_you_mean/core_ext/name_error.rb', line 5

def original_message
  # we cannot use alias here because
  to_s
end

#spell_checkerObject



53
54
55
# File 'lib/did_you_mean/core_ext/name_error.rb', line 53

def spell_checker
  DidYouMean.spell_checkers[self.class.to_s].new(self)
end

#to_sObject



38
39
40
41
42
43
44
45
46
# File 'lib/did_you_mean/core_ext/name_error.rb', line 38

def to_s
  msg = super.dup
  suggestion = DidYouMean.formatter.message_for(corrections)

  msg << suggestion if !msg.include?(suggestion)
  msg
rescue
  super
end