Method: GuessRakeTask#guess_brackets

Defined in:
lib/guessmethod/rake.rb

#guess_brackets(task_name, scopes = nil) ⇒ Object

GuessRakeTask’s magic. Go for Rake::TaskManager’s [] lookup first, then guess at it if it fails.



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/guessmethod/rake.rb', line 21

def guess_brackets(task_name, scopes=nil)
  begin
    unguessed_brackets(task_name, scopes)
  rescue RuntimeError => e
    possible_tasks = GuessMethod::GuessMethodGuesser.find_closest(@tasks.keys, task_name)
    case possible_tasks.size
    when 1
      task_to_call = possible_tasks.first
      $stderr.puts GuessMethod::GuessMethodOutputter.replacing_rake_task(task_name, task_to_call)
      unguessed_brackets(task_to_call, scopes)
    when 0
      $stderr.puts GuessMethod::GuessMethodOutputter.no_rake_task_in_threshold(task_name)
      raise e
    else
      $stderr.puts GuessMethod::GuessMethodOutputter.ambigous_rake_task(task_name, possible_tasks)
      raise e
    end
  end
end