did_you_mean 1.2.2 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 78b9260bb8347fa60cb3077dd23f25c7ea514af2fc2673616e778e510afee84d
4
- data.tar.gz: 69961a2b8c93e69cbbbc9782de9951257b2811ba107bcf74c3cd0fbb6308194d
3
+ metadata.gz: 50bf04523f12cc4556ea28643d05f957a6ed95288d022716bbd32b325ea10feb
4
+ data.tar.gz: eeb093d01d27dae887f7ecbc5e4c530db5230743de2c7280b19f139f56e11638
5
5
  SHA512:
6
- metadata.gz: 783d8d7aa3147693008c88050c7b867104f3f669638f42f5e6d8418b193b927859294af95767edcc8cc155b01ed3adacd4fc19ae9ac4fb7604031e26f1aaaeca
7
- data.tar.gz: 5f4f128667972ce3b3c52680b760519931ff579b8232c3cf34672475d5cbe2f8b7ed346d8f8685cb2b2883c0ed775cab1b80dea79c85f749c3c1c65b1ba11d25
6
+ metadata.gz: '0941cfdae93b66e3485c0850f2763c869971a1d7cff386fe66d51739d8869155d8ae868016210a0d2935f81aa8185477c9db162029d5a754240f210a2f3b9df8'
7
+ data.tar.gz: fc53dbc6ae27025325d36084b5be82f0b462addc83a3fa7a0b0b780b6aed2b2dc5f40cc3a3ad7213eeb2a03476723f0ae36681a534d27b9991c95d5ab2197b66
@@ -1 +1 @@
1
- 2.5.1
1
+ 2.5.0
@@ -11,4 +11,5 @@ after_success:
11
11
  - bundle exec rake benchmark:memory
12
12
 
13
13
  rvm:
14
- - 2.5.1
14
+ - 2.5.3
15
+ - ruby-head
@@ -1,8 +1,33 @@
1
+ ## [v1.2.1](https://github.com/yuki24/did_you_mean/tree/v1.2.1)
2
+
3
+ _<sup>released at 2018-04-03 04:44:47 UTC</sup>_
4
+
5
+ #### Bug Fixes
6
+
7
+ - Fixed a bug where DYM suggests the same class name in the error message ([#102](https://github.com/yuki24/did_you_mean/issues/102), [@schneems](https://github.com/schneems))
8
+ - Fixed a bug where the deprecated `DidYouMean::Formatter` has been removed unexpectedly ([#103](https://github.com/yuki24/did_you_mean/issues/103), [<tt>4b5ba32</tt>](https://github.com/yuki24/did_you_mean/commit/4b5ba3215975df1dd8e9c7eacffcf02abfffa92e))
9
+
10
+ #### Other Changes
11
+
12
+ - Non-production code that has a non-commercial lisence has been removed from gem releases ([#105](https://github.com/yuki24/did_you_mean/issues/105), [@jbotelho2-bb](https://github.com/jbotelho2-bb))
13
+
14
+ ## [v1.2.0](https://github.com/yuki24/did_you_mean/tree/v1.2.0)
15
+
16
+ _<sup>released at 2018-01-02 20:49:35 UTC</sup>_
17
+
18
+ **This version&nbsp;1.2.0&nbsp;only has support for Ruby 2.5.0 and later as it uses new features that are only available in 2.5. All future patch releases under&nbsp;1.2.\*&nbsp;will only be compatible with Ruby 2.5.0 and later as well. Versions earlier than&nbsp;1.1.\*&nbsp;will still be maintained until Ruby 2.4 is deprecated. Any other versions below&nbsp;1.0&nbsp;will no longer be maintained.**
19
+
20
+ #### New features
21
+
22
+ - The `KeyError` name suggestion feature has been promoted to a stable feature and is available by default ([<tt>acf5945</tt>](https://github.com/yuki24/did_you_mean/commit/acf59450dfb67eefae9b465ccc8029af46ae7dd0),&nbsp;[https://bugs.ruby-lang.org/issues/12063](https://bugs.ruby-lang.org/issues/12063))
23
+ - Now suggests `true`, `false` or `nil` if a NameError occurs because of a typo in these names ([#94](https://github.com/yuki24/did_you_mean/pull/94), [@styd](https://github.com/styd))
24
+ - New Formatter API: This provides a clean way to customize DidYouMean’s formatter without overriding the default formatter. Please refer to [the built-in verbose formatter](https://github.com/yuki24/did_you_mean/blob/671cdff/lib/did_you_mean/verbose.rb) for how to use it
25
+
1
26
  ## [v1.1.2](https://github.com/yuki24/did_you_mean/tree/v1.1.2)
2
27
 
3
28
  _<sup>released at 2017-09-24 07:28:48 UTC</sup>_
4
29
 
5
- **This version is compatible with Ruby 2.4 and older**
30
+ **This version is only compatible with Ruby 2.4 and later.**
6
31
 
7
32
  #### Bug Fixes
8
33
 
@@ -18,7 +43,7 @@ _<sup>released at 2017-09-24 07:24:02 UTC</sup>_
18
43
 
19
44
  _<sup>released at 2016-12-19 23:19:06 UTC</sup>_
20
45
 
21
- The version `1.1.0` only has support for Ruby 2.4.0 and later. Also, all patch releasess under `1.1.*` will only be compatible with Ruby 2.4.0 and later as well. Versions under `1.0.*` will still be maintained until Ruby 2.3 is deprecated. Any other versions below `1.0` will no longer be maintained.
46
+ The version `1.1.0` only has support for Ruby 2.4.0 and later. Also, all patch releases under `1.1.*` will only be compatible with Ruby 2.4.0 and later as well. Versions under `1.0.*` will still be maintained until Ruby 2.3 is deprecated. Any other versions below `1.0` will no longer be maintained.
22
47
 
23
48
  #### New Features
24
49
 
@@ -102,7 +127,7 @@ _<sup>released at 2015-12-25 05:13:04 UTC</sup>_
102
127
 
103
128
  _<sup>released at 2015-12-25 05:02:25 UTC</sup>_
104
129
 
105
- #### Internal Chagens
130
+ #### Internal Changes
106
131
 
107
132
  - No longer uses `TracePoint` API by default. fixes [#55](https://github.com/yuki24/did_you_mean/issues/55) and [#56](https://github.com/yuki24/did_you_mean/issues/56)
108
133
 
data/README.md CHANGED
@@ -108,6 +108,45 @@ OBject
108
108
  #
109
109
  ```
110
110
 
111
+ ## Disabling `did_you_mean`
112
+
113
+ Occasionally, you may want to disable the `did_you_mean` gem for e.g. debugging issues in the error object itself. You
114
+ can disable it entirely by specifying `--disable-did_you_mean` option to the `ruby` command:
115
+
116
+ ```bash
117
+ $ ruby --disable-did_you_mean -e "1.zeor?"
118
+ -e:1:in `<main>': undefined method `zeor?' for 1:Integer (NameError)
119
+ ```
120
+
121
+ When you do not have direct access to the `ruby` command (e.g. `rails console`, `irb`), you could applyoptions using the
122
+ `RUBYOPT` environment variable:
123
+
124
+ ```bash
125
+ $ RUBYOPT='--disable-did_you_mean' irb
126
+ irb:0> 1.zeor?
127
+ # => NoMethodError (undefined method `zeor?' for 1:Integer)
128
+ ```
129
+
130
+ ### Getting the original error message
131
+
132
+ Sometimes, you do not want to disable the gem entirely, but need to get the original error message without suggestions
133
+ (e.g. testing). In this case, you could use the `#original_message` method on the error object:
134
+
135
+ ```ruby
136
+ no_method_error = begin
137
+ 1.zeor?
138
+ rescue NoMethodError => error
139
+ error
140
+ end
141
+
142
+ no_method_error.message
143
+ # => NoMethodError (undefined method `zeor?' for 1:Integer)
144
+ # Did you mean? zero?
145
+
146
+ no_method_error.original_message
147
+ # => NoMethodError (undefined method `zeor?' for 1:Integer)
148
+ ```
149
+
111
150
  ## Contributing
112
151
 
113
152
  1. Fork it (http://github.com/yuki24/did_you_mean/fork)
@@ -9,29 +9,83 @@ require 'did_you_mean/spell_checkers/null_checker'
9
9
 
10
10
  require "did_you_mean/formatters/plain_formatter"
11
11
 
12
+ # The +DidYouMean+ gem adds functionality to suggest possible method/class
13
+ # names upon errors such as +NameError+ and +NoMethodError+. In Ruby 2.3 or
14
+ # later, it is automatically activated during startup.
15
+ #
16
+ # @example
17
+ #
18
+ # methosd
19
+ # # => NameError: undefined local variable or method `methosd' for main:Object
20
+ # # Did you mean? methods
21
+ # # method
22
+ #
23
+ # OBject
24
+ # # => NameError: uninitialized constant OBject
25
+ # # Did you mean? Object
26
+ #
27
+ # @full_name = "Yuki Nishijima"
28
+ # first_name, last_name = full_name.split(" ")
29
+ # # => NameError: undefined local variable or method `full_name' for main:Object
30
+ # # Did you mean? @full_name
31
+ #
32
+ # @@full_name = "Yuki Nishijima"
33
+ # @@full_anme
34
+ # # => NameError: uninitialized class variable @@full_anme in Object
35
+ # # Did you mean? @@full_name
36
+ #
37
+ # full_name = "Yuki Nishijima"
38
+ # full_name.starts_with?("Y")
39
+ # # => NoMethodError: undefined method `starts_with?' for "Yuki Nishijima":String
40
+ # # Did you mean? start_with?
41
+ #
42
+ # hash = {foo: 1, bar: 2, baz: 3}
43
+ # hash.fetch(:fooo)
44
+ # # => KeyError: key not found: :fooo
45
+ # # Did you mean? :foo
46
+ #
47
+ #
48
+ # == Disabling +did_you_mean+
49
+ #
50
+ # Occasionally, you may want to disable the +did_you_mean+ gem for e.g.
51
+ # debugging issues in the error object itself. You can disable it entirely by
52
+ # specifying +--disable-did_you_mean+ option to the +ruby+ command:
53
+ #
54
+ # $ ruby --disable-did_you_mean -e "1.zeor?"
55
+ # -e:1:in `<main>': undefined method `zeor?' for 1:Integer (NameError)
56
+ #
57
+ # When you do not have direct access to the +ruby+ command (e.g.
58
+ # +rails console+, +irb+), you could applyoptions using the +RUBYOPT+
59
+ # environment variable:
60
+ #
61
+ # $ RUBYOPT='--disable-did_you_mean' irb
62
+ # irb:0> 1.zeor?
63
+ # # => NoMethodError (undefined method `zeor?' for 1:Integer)
64
+ #
65
+ #
66
+ # == Getting the original error message
67
+ #
68
+ # Sometimes, you do not want to disable the gem entirely, but need to get the
69
+ # original error message without suggestions (e.g. testing). In this case, you
70
+ # could use the +#original_message+ method on the error object:
71
+ #
72
+ # no_method_error = begin
73
+ # 1.zeor?
74
+ # rescue NoMethodError => error
75
+ # error
76
+ # end
77
+ #
78
+ # no_method_error.message
79
+ # # => NoMethodError (undefined method `zeor?' for 1:Integer)
80
+ # # Did you mean? zero?
81
+ #
82
+ # no_method_error.original_message
83
+ # # => NoMethodError (undefined method `zeor?' for 1:Integer)
84
+ #
12
85
  module DidYouMean
13
- class DeprecatedIgnoredCallers < Array
14
- %i(
15
- +
16
- <<
17
- []=
18
- insert
19
- unshift
20
- push
21
- ).each do |method_name|
22
- eval <<-RUBY, nil, __FILE__, __LINE__ + 1
23
- def #{method_name}(*)
24
- warn "IGNORED_CALLERS has been deprecated and has no effect."
25
-
26
- super
27
- end
28
- RUBY
29
- end
30
- end
31
-
32
- IGNORED_CALLERS = DeprecatedIgnoredCallers.new
33
-
86
+ # Map of error types and spell checker objects.
34
87
  SPELL_CHECKERS = Hash.new(NullChecker)
88
+
35
89
  SPELL_CHECKERS.merge!({
36
90
  "NameError" => NameErrorCheckers,
37
91
  "NoMethodError" => MethodNameChecker,
@@ -41,29 +95,15 @@ module DidYouMean
41
95
  NameError.prepend DidYouMean::Correctable
42
96
  KeyError.prepend DidYouMean::Correctable
43
97
 
98
+ # Returns the currenctly set formatter. By default, it is set to +DidYouMean::Formatter+.
44
99
  def self.formatter
45
100
  @@formatter
46
101
  end
47
102
 
103
+ # Updates the primary formatter used to format the suggestions.
48
104
  def self.formatter=(formatter)
49
105
  @@formatter = formatter
50
106
  end
51
107
 
52
108
  self.formatter = PlainFormatter.new
53
-
54
- # Deprecated formatter
55
- class Formatter #:nodoc:
56
- def initialize(corrections = [])
57
- @corrections = corrections
58
- end
59
-
60
- def to_s
61
- return "" if @corrections.empty?
62
-
63
- output = "\nDid you mean? ".dup
64
- output << @corrections.join("\n ")
65
- end
66
- end
67
-
68
- deprecate_constant :Formatter
69
109
  end
@@ -1,7 +1,31 @@
1
1
  # frozen-string-literal: true
2
2
 
3
3
  module DidYouMean
4
+ # The +DidYouMean::PlainFormatter+ is the basic, default formatter for the
5
+ # gem. The formatter responds to the +message_for+ method and it returns a
6
+ # human readable string.
4
7
  class PlainFormatter
8
+
9
+ # Returns a human readable string that contains +corrections+. This
10
+ # formatter is designed to be less verbose to not take too much screen
11
+ # space while being helpful enough to the user.
12
+ #
13
+ # @example
14
+ #
15
+ # formatter = DidYouMean::PlainFormatter.new
16
+ #
17
+ # # displays suggestions in two lines with the leading empty line
18
+ # puts formatter.message_for(["methods", "method"])
19
+ #
20
+ # Did you mean? methods
21
+ # method
22
+ # # => nil
23
+ #
24
+ # # displays an empty line
25
+ # puts formatter.message_for([])
26
+ #
27
+ # # => nil
28
+ #
5
29
  def message_for(corrections)
6
30
  corrections.empty? ? "" : "\nDid you mean? #{corrections.join("\n ")}"
7
31
  end
@@ -1,7 +1,43 @@
1
1
  # frozen-string-literal: true
2
2
 
3
3
  module DidYouMean
4
+ # The +DidYouMean::VerboseFormatter+ uses extra empty lines to make the
5
+ # suggestion stand out more in the error message.
6
+ #
7
+ # In order to activate the verbose formatter,
8
+ #
9
+ # @example
10
+ #
11
+ # OBject
12
+ # # => NameError: uninitialized constant OBject
13
+ # # Did you mean? Object
14
+ #
15
+ # require 'did_you_mean/verbose'
16
+ #
17
+ # OBject
18
+ # # => NameError: uninitialized constant OBject
19
+ # #
20
+ # # Did you mean? Object
21
+ # #
22
+ #
4
23
  class VerboseFormatter
24
+
25
+ # Returns a human readable string that contains +corrections+. This
26
+ # formatter is designed to be less verbose to not take too much screen
27
+ # space while being helpful enough to the user.
28
+ #
29
+ # @example
30
+ #
31
+ # formatter = DidYouMean::PlainFormatter.new
32
+ #
33
+ # puts formatter.message_for(["methods", "method"])
34
+ #
35
+ #
36
+ # Did you mean? methods
37
+ # method
38
+ #
39
+ # # => nil
40
+ #
5
41
  def message_for(corrections)
6
42
  return "" if corrections.empty?
7
43
 
@@ -7,6 +7,35 @@ module DidYouMean
7
7
  NAMES_TO_EXCLUDE = { NilClass => nil.methods }
8
8
  NAMES_TO_EXCLUDE.default = []
9
9
 
10
+ # +MethodNameChecker::RB_RESERVED_WORDS+ is the list of reserved words in
11
+ # Ruby that take an argument. Unlike
12
+ # +VariableNameChecker::RB_RESERVED_WORDS+, those reserved words reqquires
13
+ # an argument, and a +NoMethodError+ is raised due to the presence of the
14
+ # argument.
15
+ #
16
+ # The +MethodNameChecker+ will use this list to suggest a reversed word if
17
+ # a +NoMethodError+ is raised and found closest matches.
18
+ #
19
+ # Also see +VariableNameChecker::RB_RESERVED_WORDS+.
20
+ RB_RESERVED_WORDS = %i(
21
+ alias
22
+ case
23
+ def
24
+ defined?
25
+ elsif
26
+ end
27
+ ensure
28
+ for
29
+ rescue
30
+ super
31
+ undef
32
+ unless
33
+ until
34
+ when
35
+ while
36
+ yield
37
+ )
38
+
10
39
  def initialize(exception)
11
40
  @method_name = exception.name
12
41
  @receiver = exception.receiver
@@ -14,7 +43,7 @@ module DidYouMean
14
43
  end
15
44
 
16
45
  def corrections
17
- @corrections ||= SpellChecker.new(dictionary: method_names).correct(method_name) - NAMES_TO_EXCLUDE[@receiver.class]
46
+ @corrections ||= SpellChecker.new(dictionary: RB_RESERVED_WORDS + method_names).correct(method_name) - NAMES_TO_EXCLUDE[@receiver.class]
18
47
  end
19
48
 
20
49
  def method_names
@@ -6,9 +6,61 @@ module DidYouMean
6
6
  class VariableNameChecker
7
7
  attr_reader :name, :method_names, :lvar_names, :ivar_names, :cvar_names
8
8
 
9
- NAMES_TO_EXCLUDE = { 'foo' => [:fork] }
9
+ NAMES_TO_EXCLUDE = { 'foo' => [:fork, :for] }
10
10
  NAMES_TO_EXCLUDE.default = []
11
- RB_PREDEFINED_OBJECTS = [:false, :true, :nil]
11
+
12
+ # +VariableNameChecker::RB_RESERVED_WORDS+ is the list of all reserved
13
+ # words in Ruby. They could be declared like methods are, and a typo would
14
+ # cause Ruby to raise a +NameError+ because of the way they are declared.
15
+ #
16
+ # The +:VariableNameChecker+ will use this list to suggest a reversed word
17
+ # if a +NameError+ is raised and found closest matches, excluding:
18
+ #
19
+ # * +do+
20
+ # * +if+
21
+ # * +in+
22
+ # * +or+
23
+ #
24
+ # Also see +MethodNameChecker::RB_RESERVED_WORDS+.
25
+ RB_RESERVED_WORDS = %i(
26
+ BEGIN
27
+ END
28
+ alias
29
+ and
30
+ begin
31
+ break
32
+ case
33
+ class
34
+ def
35
+ defined?
36
+ else
37
+ elsif
38
+ end
39
+ ensure
40
+ false
41
+ for
42
+ module
43
+ next
44
+ nil
45
+ not
46
+ redo
47
+ rescue
48
+ retry
49
+ return
50
+ self
51
+ super
52
+ then
53
+ true
54
+ undef
55
+ unless
56
+ until
57
+ when
58
+ while
59
+ yield
60
+ __LINE__
61
+ __FILE__
62
+ __ENCODING__
63
+ )
12
64
 
13
65
  def initialize(exception)
14
66
  @name = exception.name.to_s.tr("@", "")
@@ -23,7 +75,7 @@ module DidYouMean
23
75
 
24
76
  def corrections
25
77
  @corrections ||= SpellChecker
26
- .new(dictionary: (RB_PREDEFINED_OBJECTS + lvar_names + method_names + ivar_names + cvar_names))
78
+ .new(dictionary: (RB_RESERVED_WORDS + lvar_names + method_names + ivar_names + cvar_names))
27
79
  .correct(name) - NAMES_TO_EXCLUDE[@name]
28
80
  end
29
81
  end
@@ -1,3 +1,3 @@
1
1
  module DidYouMean
2
- VERSION = "1.2.2"
2
+ VERSION = "1.3.0"
3
3
  end
@@ -49,11 +49,3 @@ class NameErrorExtensionTest < Minitest::Test
49
49
  assert_equal "undefined method `sizee' for #<File:./tmp/.keep>", Marshal.load(Marshal.dump(error)).original_message
50
50
  end
51
51
  end
52
-
53
- class DeprecatedIgnoreCallersTest < Minitest::Test
54
- def test_ignore
55
- assert_output nil, "IGNORED_CALLERS has been deprecated and has no effect.\n" do
56
- DidYouMean::IGNORED_CALLERS << /( |`)do_not_correct_typo'/
57
- end
58
- end
59
- end
@@ -116,4 +116,11 @@ class MethodNameCheckTest < Minitest::Test
116
116
 
117
117
  assert_equal 1, error.to_s.scan(/Did you mean/).count
118
118
  end
119
+
120
+ def test_suggests_yield
121
+ error = assert_raises(NoMethodError) { yeild(1) }
122
+
123
+ assert_correction :yield, error.corrections
124
+ assert_match "Did you mean? yield", error.to_s
125
+ end
119
126
  end
@@ -69,7 +69,11 @@ class VariableNameCheckTest < Minitest::Test
69
69
  end
70
70
 
71
71
  nil_error = assert_raises(NameError) do
72
- some_var = nol
72
+ some_var = nul
73
+ end
74
+
75
+ file_error = assert_raises(NameError) do
76
+ __FIEL__
73
77
  end
74
78
 
75
79
  assert_correction :false, false_error.corrections
@@ -80,6 +84,16 @@ class VariableNameCheckTest < Minitest::Test
80
84
 
81
85
  assert_correction :nil, nil_error.corrections
82
86
  assert_match "Did you mean? nil", nil_error.to_s
87
+
88
+ assert_correction :__FILE__, file_error.corrections
89
+ assert_match "Did you mean? __FILE__", file_error.to_s
90
+ end
91
+
92
+ def test_suggests_yield
93
+ error = assert_raises(NameError) { yeild }
94
+
95
+ assert_correction :yield, error.corrections
96
+ assert_match "Did you mean? yield", error.to_s
83
97
  end
84
98
 
85
99
  def test_corrections_include_instance_variable_name
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: did_you_mean
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yuki Nishijima
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-09 00:00:00.000000000 Z
11
+ date: 2018-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -92,10 +92,8 @@ files:
92
92
  - lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb
93
93
  - lib/did_you_mean/spell_checkers/null_checker.rb
94
94
  - lib/did_you_mean/verbose.rb
95
- - lib/did_you_mean/verbose_formatter.rb
96
95
  - lib/did_you_mean/version.rb
97
96
  - test/core_ext/name_error_extension_test.rb
98
- - test/deprecated_formatter_test.rb
99
97
  - test/edit_distance/jaro_winkler_test.rb
100
98
  - test/experimental/initializer_name_correction_test.rb
101
99
  - test/experimental/method_name_checker_test.rb
@@ -129,13 +127,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
127
  version: '0'
130
128
  requirements: []
131
129
  rubyforge_project:
132
- rubygems_version: 2.7.6
130
+ rubygems_version: 2.7.4
133
131
  signing_key:
134
132
  specification_version: 4
135
133
  summary: '"Did you mean?" experience in Ruby'
136
134
  test_files:
137
135
  - test/core_ext/name_error_extension_test.rb
138
- - test/deprecated_formatter_test.rb
139
136
  - test/edit_distance/jaro_winkler_test.rb
140
137
  - test/experimental/initializer_name_correction_test.rb
141
138
  - test/experimental/method_name_checker_test.rb
@@ -1,7 +0,0 @@
1
- require 'did_you_mean'
2
- require 'did_you_mean/formatters/verbose_formatter'
3
-
4
- DidYouMean.formatter = DidYouMean::VerboseFormatter.new
5
-
6
- warn '`require "did_you_mean/verbose_formatter"\' has been deprecated and will be removed' \
7
- " in the next major Ruby version. Please require 'did_you_mean/verbose' instead."
@@ -1,9 +0,0 @@
1
- require 'test_helper'
2
-
3
- class DeprecatedFormatterTest < Minitest::Test
4
- def test_deprecated_formatter
5
- assert_output nil, /test\/deprecated_formatter_test.rb:6: warning: constant DidYouMean::Formatter is deprecated/ do
6
- assert_equal "\nDid you mean? does_exist", ::DidYouMean::Formatter.new(['does_exist']).to_s
7
- end
8
- end
9
- end