Skip to content

Latest commit

 

History

History
560 lines (322 loc) · 22.8 KB

CHANGELOG.md

File metadata and controls

560 lines (322 loc) · 22.8 KB

v1.6.3

released at 2022-12-19 5:57:00 UTC

  • Do not suggest #name= for #name.

v1.6.2

released at 2022-12-05 10:29:20 UTC

  • Define Exception#detailed_message instead of clobbering #message
  • Fixed correction duplicates in VaribaleNameChecker

v1.6.1

released at 2020-12-22 13:22:35 UTC

Deprecations

  • Deprecate custom formatters to reduce complexity for Ractor support.
  • Deprecate access to the DidYouMean::SPELL_CHECKERS constant for Ractor support.

Features

  • The did_you_mean gem is now Ractor-compatible (8faba54b)

  • Suggest keys on NoMatchingPatternKeyError (#159, @k-tsj)

  • Make the same name check case-sensitive (#164, @pocke)

    Before:

    DidYouMean::SpellChecker.new(dictionary: ['Method', 'MEthod']).correct("MEthod")
    # => ['Method', 'method']

    After:

    DidYouMean::SpellChecker.new(dictionary: ['Method', 'MEthod']).correct("MEthod")
    # => ['Method']

v1.6.0 (yanked)

This version has been yanked due to significant and unexpected breaking changes.

released at 2020-12-22 05:47:21 UTC

Features

  • Suggest require paths on LoadError (#143)

released at 2020-05-09 02:56:43 UTC

As of Ruby 2.7, the did_you_mean gem has been promoted up to a default gem. I would like to thank @kddeisz for his hard work on making the entire gem easily portable the main ruby/ruby repo (#132, #131, and ruby/ruby#2631).

Features

Bug fixes

  • Fixes a bug where wrong suggestion could be made when string requested on hash and keys are symbols (@localhostdotdev, #134)

Breaking changes

  • Experimental features have been removed (#135)

Internal changes

  • Replace Travis CI with GitHub Actions (#124)
  • Drop mintiest dependency (#129)
  • Drop delegate dependency (#138)

released at 2019-09-29 03:58:46 UTC

Bug fixes

  • Fixes a test failure in Ruby core where DYM attempts to mutate immutable strings from Symbol#to_s (#125, @nobu, @eregon, @MSP-Greg)
  • Removes the empty tmp/ directory to comply with rpmlint (#122, @pvalena)
  • Fixes a bug where suggestions are not shown on subsequent errors (#120, @localhostdotdev)

released at 2018-12-18 15:37:10 UTC

Starting version 1.3, the did_you_mean gem will be compatible with 2.6 and 2.5, and we will try to keep all subsequent versions compatible with Ruby 2.5 on an best-effort basis.

  • Version 1.2.0 only has support for Ruby 2.5.0 and later as it uses new features that are only available in 2.5.
  • Versions earlier than 1.1.* will still be maintained until Ruby 2.4 is deprecated.
  • Versions earlier than 1.0.* is still maintained, but are likely to be deprecated as Ruby 2.3 will (probably) be deprecated in 2019.
  • Support for versions below 1.0 has already ended.

New features

  • Suggest reserved words if there are close matches (2a082a7)

    results = yiedl
    # NameError => undefined local variable or method `yiedl' for ...
    # Did you mean? yield

Bug fixes

  • Fixes a bug where name errors can not be dumped (#108, @jessebs)

released at 2019-03-09 23:17:22 UTC

Bug fixes

  • Fixes a bug where name errors can not be dumped (#108, @jessebs)

released at 2018-04-03 04:44:47 UTC

Bug Fixes

  • Fixed a bug where DYM suggests the same class name in the error message (#102, @schneems)
  • Fixed a bug where the deprecated DidYouMean::Formatter has been removed unexpectedly (#103, 4b5ba32)

Other Changes

  • Non-production code that has a non-commercial license has been removed from gem releases (#105, @jbotelho2-bb)

released at 2018-01-02 20:49:35 UTC

This version 1.2.0 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 1.2.* will only be compatible with Ruby 2.5.0 and later as well. Versions earlier than 1.1.* will still be maintained until Ruby 2.4 is deprecated. Any other versions below 1.0 will no longer be maintained.

New features

  • The KeyError name suggestion feature has been promoted to a stable feature and is available by default (acf5945https://bugs.ruby-lang.org/issues/12063)
  • Now suggests true, false or nil if a NameError occurs because of a typo in these names (#94, @styd)
  • 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 for how to use it

released at 2019-03-09 23:16:54 UTC

Bug fixes

  • Fixes a bug where name errors can not be dumped (#108, @jessebs)
  • Fixed a bug where DYM suggests the same class name in the error message (#102, @schneems)

released at 2017-09-24 07:28:48 UTC

This version is only compatible with Ruby 2.4 and later.

Bug Fixes

  • Fixed a bug where did_you_mean shows duplicate suggestions when the exception is raised multiple times (#84, c2e4008)

released at 2017-09-24 07:24:02 UTC

This version has been yanked from Rubygems.org and is not available.

released at 2016-12-19 23:19:06 UTC

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.

New Features

  • Suggest a method name on a NameError from the Struct#[] or Struct#[]= method (#73):

    Struct.new(:foo).new[:fooo]
    # => NameError: no member 'fooo' in struct
    # Did you mean? foo
    # foo=
  • Added a public interface for the gem's spell checker:

    DidYouMean::SpellChecker.new(dictionary: ['email', 'fail', 'eval']).correct('meail')
    # => ['email']
  • Methods defined on nil by default are no longer suggested. Note that methods, defined after the gem is loaded, will still be suggested (e.g. ActiveSupport).

Bug Fixes

  • Fixed a bug where private method names were added to the dictionary when an argument was passed in to a public method. Use the NoMethodError#private_call? method instead (0a1b761)

released at 2019-03-09 23:16:38 UTC

Bug fixes

  • Fixes a bug where name errors can not be dumped (#108, @jessebs)
  • Fixed a bug where DYM suggests the same class name in the error message (#102, @schneems)

released at 2017-09-24 07:22:07 UTC

This version is compatible with Ruby 2.3 and older

Bug Fixes

  • Fixed a bug where did_you_mean shows duplicate suggestions when the exception is raised multiple times (#84, c2e4008)

released at 2016-11-20 18:03:07 UTC

This version is compatible with Ruby 2.3 and older

Features

  • Experimental features are officially available through require 'did_you_mean/experimental'

Deprecations

  • require 'did_you_mean/extra_features' is now deprecated in favor of require 'did_you_mean/experimental'

Internal Changes

  • Replaced the DidYouMean::SpellCheckable module with the DidYouMean::SpellChecker class. This is a slower implementation but close to the model explained in this talk, more reusable and possibly makes it easier to expose the class as a public interface.

released at 2016-05-15 05:17:22 UTC

Bug Fixes

  • Fixed a bug where the gem suggests what is actually typed by the user: 1c52c88
  • Fixed features that didn't work on JRuby 9.1.0.0: dc48dde, 4de23f8, 00e3059. The local variable name correction is still disabled. Also see: jruby/jruby#3480

released at 2015-12-25 05:13:04 UTC

Features

Bug Fixes

  • Fixed a bug where the Jaro-Winkler implementation returns the wrong distance when 2 identical strings are given. fixes #58

Internal Changes

  • Slightly changed the spell checking algorithm. Take a look at e2f5b24 for more details. fixes #60

released at 2015-12-25 05:02:25 UTC

Internal Changes

  • No longer uses TracePoint API by default. fixes #55 and #56

released at 2015-12-25 04:56:13 UTC

Internal Changes

  • Use the frozen-string-literal pragma rather than calling .freeze everywhere
  • Use the NameError#receiver method in DidYouMean:: ClassNameChecker to know the namespace where the constant call is made
  • Refactored the SpellCheckerTest

released at 2015-12-25 04:50:36 UTC

Bug Fixes

  • Fixed a bug where the gem doesn't install properly on Ruby 2.3.0dev

released at 2015-12-25 05:27:53 UTC

Breaking Changes

  • Dropped support for MRIs older than 2.3, JRuby and Rubinus

Internal Changes

  • The C extension has been removed since the NameError#receiver method has become part of the MRI 2.3
  • The interception gem has been removed from the dependencies
  • Removed code that was needed to support multiple Ruby implementations

released at 2015-08-21 06:44:11 UTC

Features

  • Now it corrects an instance variable name if the ivar name is mistyped and NoMethodError is raised:
@number = 1
@nubmer.zero?
# => NoMethodError: undefined method `zero?' for nil:NilClass
#
#     Did you mean? @number
#
  • Support for JRuby 9.0.0.0
  • Prefix-based correction ( @tjohn, #50, #49)
  • Correction search is about 75% faster than 0.9.10

Breaking Changes

  • The ActiveRecord integration has been removed

released at 2015-05-14 03:04:47 UTC

Bug Fixes

  • Fixed a bug where a duplicate "did you mean?" message was appended each time #to_s is called ( @danfinnie, #51)

released at 2015-05-13 03:48:19 UTC

Features

  • Order word suggestions based on Levenshtein distance ( @tleish, #31)

Internal Changes

  • Reduce memory allocation by about 40%
  • Speed up Levenshtein distance calculation by about 40%
  • The Java extension has been replaced with a pure JRuby implementation

released at 2015-04-12 01:55:27 UTC

Internal Changes

  • Speed up Levenshtein by 50% and reduce 97% of memory usage

released at 2015-04-02 04:20:26 UTC

Bug Fixes

  • Fixed an issue where did_you_mean doesn't install on JRuby properly.

released at 2015-01-24 23:19:27 UTC

Bug Fixes

  • Fixed a bug where did_you_mean incorrectly suggests protected methods when it just isn't callable ( @glittershark, #34)

released at 2015-01-07 12:41:23 UTC

Bug Fixes

  • Whitelist #safe_constantize method from ActiveSupport::Inflector to avoid significant performance slowdown ( @tleish, #19, #20)

released at 2014-11-19 20:00:00 UTC

Bug Fixes

  • Fixed a bug where no suggestions will be made on JRuby

released at 2014-11-18 03:50:11 UTC

This version has been yanked from rubygems.org as it doesn't work with jRuby at all. Please upgrade to 0.9.4 or higher as soon as possible.

Internal Changes

  • Replaced the crazy C extension with a so much better one (thanks to @nobu!)

released at 2014-11-17 15:32:33 UTC

Bug Fixes

  • Fixed a bug where did_you_mean doesn't compile on Ruby 2.1.2/2.1.5 ( #16)

released at 2014-11-16 18:54:24 UTC

This version has been yanked from rubygems.org as it doesn't compile on Ruby 2.1.2 and 2.1.5. Please upgrade to 0.9.4 or higher as soon as possible.

Internal Changes

  • Shrink the gem size by removing unneeded ruby header files.
  • Now it forces everyone to upgrade the gem when they upgrade Ruby to a new version. This avoids introducing a bug like #14.

released at 2014-11-09 01:26:31 UTC

Features

  • did_you_mean now suggests instance variable names if @ is missing ( #12, 39d1e2b)
@full_name = "Yuki Nishijima"
first_name, last_name = full_name.split(" ")
# => NameError: undefined local variable or method `full_name' for main:Object
#
#     Did you mean? @full_name
#

Bug Fixes

  • Fixed a bug where did_you_mean changes some behaviours of Ruby 2.1.3/2.1.4 installed on Max OS X ( #14, 44c451f, 9ebde21)
  • Fixed a bug where sometimes NoMethodError suggests duplicate method names ( 9865cc5)

released at 2014-10-27 02:03:13 UTC

This version has been yanked from rubygems.org as it has a serious bug with Ruby 2.1.3 and 2.1.4 installed on Max OS X. Please upgrade to 0.9.4 or higher as soon as possible.

Features

  • JRuby support!

Bug Fixes

released at 2014-09-26 03:37:18 UTC

This version has been yanked from rubygems.org as it has a serious bug with Ruby 2.1.3 and 2.1.4 installed on Max OS X. Please upgrade to 0.9.4 or higher as soon as possible.

Features

  • Added support for Ruby 2.1.3, 2.2.0-preview1 and ruby-head
  • Added support for ActiveRecord 4.2.0.beta1
  • Word searching is now about 40% faster than v0.6.0
  • Removed text gem dependency
  • Better output on pry and Rspec

Internal Changes

  • A lot of internal refactoring

released at 2014-05-18 00:23:24 UTC

This version has been yanked from rubygems.org as it has a serious bug with Ruby 2.1.3 and 2.1.4 installed on Max OS X. Please upgrade to 0.9.4 or higher as soon as possible.

Features

  • Added basic support for constants. Now you'll see class name suggestions when you misspelled a class names/module names:
> Ocject
# => NameError: uninitialized constant Ocject
#
#     Did you mean? Object
#

Bug Fixes

  • Fixed a bug where did_you_mean segfaults on Ruby head(2.2.0dev)

released at 2014-05-10 17:59:54 UTC

Features

  • Added support for Ruby 2.1.2

released at 2014-04-20 02:10:31 UTC

Features

  • did_you_mean now suggests a similar attribute name when you misspelled it.
User.new(flrst_name: "wrong flrst name")
# => ActiveRecord::UnknownAttributeError: unknown attribute: flrst_name
#
#     Did you mean? first_name: string
#

Bug Fixes

  • Fixed a bug where did_you_mean doesn't work with ActiveRecord::UnknownAttributeError

released at 2014-03-20 23:16:20 UTC

Features

  • Changed output for readability.
  • Made the spell checking algorithm slight better to find the correct method.

released at 2014-03-20 23:13:13 UTC

Features

  • Added support for Ruby 2.1.1 and 2.2.0(head).

released on 2014-03-20 23:12:13 UTC

Features

  • did_you_mean no longer makes Ruby slow.

Breaking Changes

  • dropped support for JRuby and Rubbinious.

released on 2014-03-20 23:11:14 UTC

  • Now you will have "did you mean?" experience in Ruby!
  • but still very experimental since this gem makes Ruby a lot slower.