From ebf094587a4fe56a92166057140cfebe1993f53e Mon Sep 17 00:00:00 2001 From: Yuki Nishijima <386234+yuki24@users.noreply.github.com> Date: Mon, 5 Dec 2022 22:14:30 +0900 Subject: [PATCH 1/4] Test against more recent Ruby versions (#181) * Test against more recent Ruby versions * Use URI.open over Kernel#open which has been removed --- .github/workflows/ruby.yml | 4 ++-- evaluation/dictionary_generator.rb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 505263ce..8abd0efb 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - ruby: [ '2.5', '2.6', '2.7', '3.0', 'ruby-head', 'jruby-9.2', 'jruby-head' ] + ruby: [ '2.5', '2.6', '2.7', '3.0', '3.1', 'ruby-head', 'jruby-9.2', 'jruby-9.3', 'jruby-head' ] steps: - uses: actions/checkout@v3 - uses: ruby/setup-ruby@v1 @@ -30,7 +30,7 @@ jobs: - uses: actions/checkout@v3 - uses: ruby/setup-ruby@v1 with: - ruby-version: 2.7.1 + ruby-version: 3.1.3 - name: Test performance and accuracy run: | gem install bundler diff --git a/evaluation/dictionary_generator.rb b/evaluation/dictionary_generator.rb index 150765fd..d7bd79f8 100644 --- a/evaluation/dictionary_generator.rb +++ b/evaluation/dictionary_generator.rb @@ -14,7 +14,7 @@ puts ("downloading page %2d: " % num) + url - body = open(url).read + body = URI.open(url).read json = JSON.load(body) count = json["query"]["allpages"].size apfrom = CGI.escape(json["query"]["allpages"].last['title']) if count > 0 From 051693130b154356f7b717bc36a3e47588048892 Mon Sep 17 00:00:00 2001 From: Matthew Boeh Date: Mon, 5 Dec 2022 05:16:27 -0800 Subject: [PATCH 2/4] Do not suggest #name= for #name and vice versa (#180) * Do not suggest #name= for #name and vice versa * Avoid allocating unnecessary MatchData Co-authored-by: Jean byroot Boussier Co-authored-by: Jean byroot Boussier --- .../spell_checkers/method_name_checker.rb | 7 +++++++ test/spell_checking/test_method_name_check.rb | 18 ++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/lib/did_you_mean/spell_checkers/method_name_checker.rb b/lib/did_you_mean/spell_checkers/method_name_checker.rb index d8ebaa46..b5cbbb5d 100644 --- a/lib/did_you_mean/spell_checkers/method_name_checker.rb +++ b/lib/did_you_mean/spell_checkers/method_name_checker.rb @@ -59,6 +59,13 @@ def method_names method_names = receiver.methods + receiver.singleton_methods method_names += receiver.private_methods if @private_call method_names.uniq! + # Assume that people trying to use a writer are not interested in a reader + # and vice versa + if method_name.match?(/=\Z/) + method_names.select! { |name| name.match?(/=\Z/) } + else + method_names.reject! { |name| name.match?(/=\Z/) } + end method_names else [] diff --git a/test/spell_checking/test_method_name_check.rb b/test/spell_checking/test_method_name_check.rb index d2e46d58..4daaf7ce 100644 --- a/test/spell_checking/test_method_name_check.rb +++ b/test/spell_checking/test_method_name_check.rb @@ -4,6 +4,8 @@ class MethodNameCheckTest < Test::Unit::TestCase include DidYouMean::TestHelper class User + attr_writer :writer + attr_reader :reader def friends; end def first_name; end def descendants; end @@ -144,4 +146,20 @@ def test_does_not_suggest_yield assert_correction [], error.corrections assert_not_match(/Did you mean\? +yield/, get_message(error)) end if RUBY_ENGINE != "jruby" + + # Do not suggest `name=` for `name` + def test_does_not_suggest_writer + error = assert_raise(NoMethodError) { @user.writer } + + assert_correction [], error.corrections + assert_not_match(/Did you mean\? writer=/, get_message(error)) + end + + # Do not suggest `name` for `name=` + def test_does_not_suggest_reader + error = assert_raise(NoMethodError) { @user.reader = 1 } + + assert_correction [], error.corrections + assert_not_match(/Did you mean\? reader/, get_message(error)) + end end From 1d3a1bac69ead8560d9b1457b5de205ca8173d63 Mon Sep 17 00:00:00 2001 From: Hiroshi SHIBATA Date: Tue, 6 Dec 2022 09:39:00 +0900 Subject: [PATCH 3/4] Note v1.6.2 changes --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d6b63074..3320e438 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## 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_ From f7703add765054b6e63ef581818a0c307fdd4abf Mon Sep 17 00:00:00 2001 From: Hiroshi SHIBATA Date: Mon, 19 Dec 2022 14:59:10 +0900 Subject: [PATCH 4/4] Bump version to 1.6.3 --- CHANGELOG.md | 6 ++++++ lib/did_you_mean/version.rb | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3320e438..e453560d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 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_ diff --git a/lib/did_you_mean/version.rb b/lib/did_you_mean/version.rb index 9fd6f170..5745ca1e 100644 --- a/lib/did_you_mean/version.rb +++ b/lib/did_you_mean/version.rb @@ -1,3 +1,3 @@ module DidYouMean - VERSION = "1.6.2".freeze + VERSION = "1.6.3".freeze end