Class: DidYouMean::RequirePathChecker

Inherits:
Object
  • Object
show all
Defined in:
lib/did_you_mean/spell_checkers/require_path_checker.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(exception) ⇒ RequirePathChecker

Returns a new instance of RequirePathChecker.


21
22
23
# File 'lib/did_you_mean/spell_checkers/require_path_checker.rb', line 21

def initialize(exception)
  @path = exception.path
end

Instance Attribute Details

#pathObject (readonly)

Returns the value of attribute path.


8
9
10
# File 'lib/did_you_mean/spell_checkers/require_path_checker.rb', line 8

def path
  @path
end

Class Method Details

.requireablesObject


15
16
17
18
19
# File 'lib/did_you_mean/spell_checkers/require_path_checker.rb', line 15

def self.requireables
  @requireables ||= INITIAL_LOAD_PATH
                      .flat_map {|path| Dir.glob("**/???*{.rb,#{ENV_SPECIFIC_EXT}}", base: path) }
                      .map {|path| path.chomp!(".rb") || path.chomp!(ENV_SPECIFIC_EXT) }
end

Instance Method Details

#correctionsObject


25
26
27
28
29
30
31
32
33
# File 'lib/did_you_mean/spell_checkers/require_path_checker.rb', line 25

def corrections
  @corrections ||= begin
                     threshold     = path.size * 2
                     dictionary    = self.class.requireables.reject {|str| str.size >= threshold }
                     spell_checker = path.include?("/") ? TreeSpellChecker : SpellChecker

                     spell_checker.new(dictionary: dictionary).correct(path).uniq
                   end
end