summaryrefslogtreecommitdiff
path: root/lib/did_you_mean/formatters/verbose_formatter.rb
blob: b8fe214d57825c57475dc25fb352231e09d6491c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# frozen-string-literal: true

module DidYouMean
  # The +DidYouMean::VerboseFormatter+ uses extra empty lines to make the
  # suggestion stand out more in the error message.
  #
  # In order to activate the verbose formatter,
  #
  # @example
  #
  #   OBject
  #   # => NameError: uninitialized constant OBject
  #   #    Did you mean?  Object
  #
  #   require 'did_you_mean/verbose'
  #
  #   OBject
  #   # => NameError: uninitialized constant OBject
  #   #
  #   #        Did you mean? Object
  #   #
  #
  class VerboseFormatter

    # Returns a human readable string that contains +corrections+. This
    # formatter is designed to be less verbose to not take too much screen
    # space while being helpful enough to the user.
    #
    # @example
    #
    #   formatter = DidYouMean::PlainFormatter.new
    #
    #   puts formatter.message_for(["methods", "method"])
    #
    #
    #       Did you mean? methods
    #                     method
    #
    #   # => nil
    #
    def message_for(corrections)
      return "" if corrections.empty?

      output = "\n\n    Did you mean? ".dup
      output << corrections.join("\n                  ")
      output << "\n "
    end
  end
end