!18 Fix build failed due to ruby update to 3.1.3
From: @starlet-dx Reviewed-by: @small_leek Signed-off-by: @small_leek
This commit is contained in:
commit
889d881778
164
Fix-expectations-for-ruby-3-treatment-of-hash-arg.patch
Normal file
164
Fix-expectations-for-ruby-3-treatment-of-hash-arg.patch
Normal file
@ -0,0 +1,164 @@
|
|||||||
|
From 0def4cfba5bf470f76877eb3b8a8895f0018e574 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tim Diggins <tim@red56.uk>
|
||||||
|
Date: Fri, 4 Mar 2022 12:16:58 +0000
|
||||||
|
Subject: [PATCH] fix expectations for ruby 3 treatment of hash arg
|
||||||
|
|
||||||
|
---
|
||||||
|
spec/line_editor_spec.rb | 4 ++--
|
||||||
|
spec/shell/basic_spec.rb | 34 +++++++++++++++++-----------------
|
||||||
|
2 files changed, 19 insertions(+), 19 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/spec/line_editor_spec.rb b/spec/line_editor_spec.rb
|
||||||
|
index 575fd336e..f034ec8df 100644
|
||||||
|
--- a/spec/line_editor_spec.rb
|
||||||
|
+++ b/spec/line_editor_spec.rb
|
||||||
|
@@ -13,7 +13,7 @@
|
||||||
|
describe ".readline" do
|
||||||
|
it "uses the Readline line editor" do
|
||||||
|
editor = double("Readline")
|
||||||
|
- expect(Thor::LineEditor::Readline).to receive(:new).with("Enter your name ", :default => "Brian").and_return(editor)
|
||||||
|
+ expect(Thor::LineEditor::Readline).to receive(:new).with("Enter your name ", {:default => "Brian"}).and_return(editor)
|
||||||
|
expect(editor).to receive(:readline).and_return("George")
|
||||||
|
expect(Thor::LineEditor.readline("Enter your name ", :default => "Brian")).to eq("George")
|
||||||
|
end
|
||||||
|
@@ -35,7 +35,7 @@
|
||||||
|
describe ".readline" do
|
||||||
|
it "uses the Basic line editor" do
|
||||||
|
editor = double("Basic")
|
||||||
|
- expect(Thor::LineEditor::Basic).to receive(:new).with("Enter your name ", :default => "Brian").and_return(editor)
|
||||||
|
+ expect(Thor::LineEditor::Basic).to receive(:new).with("Enter your name ", {:default => "Brian"}).and_return(editor)
|
||||||
|
expect(editor).to receive(:readline).and_return("George")
|
||||||
|
expect(Thor::LineEditor.readline("Enter your name ", :default => "Brian")).to eq("George")
|
||||||
|
end
|
||||||
|
diff --git a/spec/shell/basic_spec.rb b/spec/shell/basic_spec.rb
|
||||||
|
index b51c5e8af..b795a80a8 100644
|
||||||
|
--- a/spec/shell/basic_spec.rb
|
||||||
|
+++ b/spec/shell/basic_spec.rb
|
||||||
|
@@ -70,80 +70,80 @@ def shell
|
||||||
|
|
||||||
|
it "prints a message to the user with the available options, expects case-sensitive matching, and determines the correctness of the answer" do
|
||||||
|
flavors = %w(strawberry chocolate vanilla)
|
||||||
|
- expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? [strawberry, chocolate, vanilla] ', :limited_to => flavors).and_return("chocolate")
|
||||||
|
+ expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? [strawberry, chocolate, vanilla] ', {:limited_to => flavors}).and_return("chocolate")
|
||||||
|
expect(shell.ask('What\'s your favorite Neopolitan flavor?', :limited_to => flavors)).to eq("chocolate")
|
||||||
|
end
|
||||||
|
|
||||||
|
it "prints a message to the user with the available options, expects case-sensitive matching, and reasks the question after an incorrect response" do
|
||||||
|
flavors = %w(strawberry chocolate vanilla)
|
||||||
|
expect($stdout).to receive(:print).with("Your response must be one of: [strawberry, chocolate, vanilla]. Please try again.\n")
|
||||||
|
- expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? [strawberry, chocolate, vanilla] ', :limited_to => flavors).and_return("moose tracks", "chocolate")
|
||||||
|
+ expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? [strawberry, chocolate, vanilla] ', {:limited_to => flavors}).and_return("moose tracks", "chocolate")
|
||||||
|
expect(shell.ask('What\'s your favorite Neopolitan flavor?', :limited_to => flavors)).to eq("chocolate")
|
||||||
|
end
|
||||||
|
|
||||||
|
it "prints a message to the user with the available options, expects case-sensitive matching, and reasks the question after a case-insensitive match" do
|
||||||
|
flavors = %w(strawberry chocolate vanilla)
|
||||||
|
expect($stdout).to receive(:print).with("Your response must be one of: [strawberry, chocolate, vanilla]. Please try again.\n")
|
||||||
|
- expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? [strawberry, chocolate, vanilla] ', :limited_to => flavors).and_return("cHoCoLaTe", "chocolate")
|
||||||
|
+ expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? [strawberry, chocolate, vanilla] ', {:limited_to => flavors}).and_return("cHoCoLaTe", "chocolate")
|
||||||
|
expect(shell.ask('What\'s your favorite Neopolitan flavor?', :limited_to => flavors)).to eq("chocolate")
|
||||||
|
end
|
||||||
|
|
||||||
|
it "prints a message to the user with the available options, expects case-insensitive matching, and determines the correctness of the answer" do
|
||||||
|
flavors = %w(strawberry chocolate vanilla)
|
||||||
|
- expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? [strawberry, chocolate, vanilla] ', :limited_to => flavors, :case_insensitive => true).and_return("CHOCOLATE")
|
||||||
|
+ expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? [strawberry, chocolate, vanilla] ', {:limited_to => flavors, :case_insensitive => true}).and_return("CHOCOLATE")
|
||||||
|
expect(shell.ask('What\'s your favorite Neopolitan flavor?', :limited_to => flavors, :case_insensitive => true)).to eq("chocolate")
|
||||||
|
end
|
||||||
|
|
||||||
|
it "prints a message to the user with the available options, expects case-insensitive matching, and reasks the question after an incorrect response" do
|
||||||
|
flavors = %w(strawberry chocolate vanilla)
|
||||||
|
expect($stdout).to receive(:print).with("Your response must be one of: [strawberry, chocolate, vanilla]. Please try again.\n")
|
||||||
|
- expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? [strawberry, chocolate, vanilla] ', :limited_to => flavors, :case_insensitive => true).and_return("moose tracks", "chocolate")
|
||||||
|
+ expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? [strawberry, chocolate, vanilla] ', {:limited_to => flavors, :case_insensitive => true}).and_return("moose tracks", "chocolate")
|
||||||
|
expect(shell.ask('What\'s your favorite Neopolitan flavor?', :limited_to => flavors, :case_insensitive => true)).to eq("chocolate")
|
||||||
|
end
|
||||||
|
|
||||||
|
it "prints a message to the user containing a default and sets the default if only enter is pressed" do
|
||||||
|
- expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? (vanilla) ', :default => "vanilla").and_return("")
|
||||||
|
+ expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? (vanilla) ', {:default => "vanilla"}).and_return("")
|
||||||
|
expect(shell.ask('What\'s your favorite Neopolitan flavor?', :default => "vanilla")).to eq("vanilla")
|
||||||
|
end
|
||||||
|
|
||||||
|
it "prints a message to the user with the available options and reasks the question after an incorrect response and then returns the default" do
|
||||||
|
flavors = %w(strawberry chocolate vanilla)
|
||||||
|
expect($stdout).to receive(:print).with("Your response must be one of: [strawberry, chocolate, vanilla]. Please try again.\n")
|
||||||
|
- expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? [strawberry, chocolate, vanilla] (vanilla) ', :default => "vanilla", :limited_to => flavors).and_return("moose tracks", "")
|
||||||
|
+ expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? [strawberry, chocolate, vanilla] (vanilla) ', {:default => "vanilla", :limited_to => flavors}).and_return("moose tracks", "")
|
||||||
|
expect(shell.ask("What's your favorite Neopolitan flavor?", :default => "vanilla", :limited_to => flavors)).to eq("vanilla")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "#yes?" do
|
||||||
|
it "asks the user and returns true if the user replies yes" do
|
||||||
|
- expect(Thor::LineEditor).to receive(:readline).with("Should I overwrite it? ", :add_to_history => false).and_return("y")
|
||||||
|
+ expect(Thor::LineEditor).to receive(:readline).with("Should I overwrite it? ", {:add_to_history => false}).and_return("y")
|
||||||
|
expect(shell.yes?("Should I overwrite it?")).to be true
|
||||||
|
end
|
||||||
|
|
||||||
|
it "asks the user and returns false if the user replies no" do
|
||||||
|
- expect(Thor::LineEditor).to receive(:readline).with("Should I overwrite it? ", :add_to_history => false).and_return("n")
|
||||||
|
+ expect(Thor::LineEditor).to receive(:readline).with("Should I overwrite it? ", {:add_to_history => false}).and_return("n")
|
||||||
|
expect(shell.yes?("Should I overwrite it?")).not_to be true
|
||||||
|
end
|
||||||
|
|
||||||
|
it "asks the user and returns false if the user replies with an answer other than yes or no" do
|
||||||
|
- expect(Thor::LineEditor).to receive(:readline).with("Should I overwrite it? ", :add_to_history => false).and_return("foobar")
|
||||||
|
+ expect(Thor::LineEditor).to receive(:readline).with("Should I overwrite it? ", {:add_to_history => false}).and_return("foobar")
|
||||||
|
expect(shell.yes?("Should I overwrite it?")).to be false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "#no?" do
|
||||||
|
it "asks the user and returns true if the user replies no" do
|
||||||
|
- expect(Thor::LineEditor).to receive(:readline).with("Should I overwrite it? ", :add_to_history => false).and_return("n")
|
||||||
|
+ expect(Thor::LineEditor).to receive(:readline).with("Should I overwrite it? ", {:add_to_history => false}).and_return("n")
|
||||||
|
expect(shell.no?("Should I overwrite it?")).to be true
|
||||||
|
end
|
||||||
|
|
||||||
|
it "asks the user and returns false if the user replies yes" do
|
||||||
|
- expect(Thor::LineEditor).to receive(:readline).with("Should I overwrite it? ", :add_to_history => false).and_return("Yes")
|
||||||
|
+ expect(Thor::LineEditor).to receive(:readline).with("Should I overwrite it? ", {:add_to_history => false}).and_return("Yes")
|
||||||
|
expect(shell.no?("Should I overwrite it?")).to be false
|
||||||
|
end
|
||||||
|
|
||||||
|
it "asks the user and returns false if the user replies with an answer other than yes or no" do
|
||||||
|
- expect(Thor::LineEditor).to receive(:readline).with("Should I overwrite it? ", :add_to_history => false).and_return("foobar")
|
||||||
|
+ expect(Thor::LineEditor).to receive(:readline).with("Should I overwrite it? ", {:add_to_history => false}).and_return("foobar")
|
||||||
|
expect(shell.no?("Should I overwrite it?")).to be false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
@@ -431,13 +431,13 @@ def #456 Lanç...
|
||||||
|
expect(content).to eq(<<-TABLE)
|
||||||
|
Name Number Color
|
||||||
|
Erik 1234567890123 green
|
||||||
|
-TABLE
|
||||||
|
+ TABLE
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "#file_collision" do
|
||||||
|
it "shows a menu with options" do
|
||||||
|
- expect(Thor::LineEditor).to receive(:readline).with('Overwrite foo? (enter "h" for help) [Ynaqh] ', :add_to_history => false).and_return("n")
|
||||||
|
+ expect(Thor::LineEditor).to receive(:readline).with('Overwrite foo? (enter "h" for help) [Ynaqh] ', {:add_to_history => false}).and_return("n")
|
||||||
|
shell.file_collision("foo")
|
||||||
|
end
|
||||||
|
|
||||||
|
@@ -478,7 +478,7 @@ def #456 Lanç...
|
||||||
|
end
|
||||||
|
|
||||||
|
it "always returns true if the user chooses always" do
|
||||||
|
- expect(Thor::LineEditor).to receive(:readline).with('Overwrite foo? (enter "h" for help) [Ynaqh] ', :add_to_history => false).and_return("a")
|
||||||
|
+ expect(Thor::LineEditor).to receive(:readline).with('Overwrite foo? (enter "h" for help) [Ynaqh] ', {:add_to_history => false}).and_return("a")
|
||||||
|
|
||||||
|
expect(shell.file_collision("foo")).to be true
|
||||||
|
|
||||||
|
@@ -488,7 +488,7 @@ def #456 Lanç...
|
||||||
|
|
||||||
|
describe "when a block is given" do
|
||||||
|
it "displays diff and merge options to the user" do
|
||||||
|
- expect(Thor::LineEditor).to receive(:readline).with('Overwrite foo? (enter "h" for help) [Ynaqdhm] ', :add_to_history => false).and_return("s")
|
||||||
|
+ expect(Thor::LineEditor).to receive(:readline).with('Overwrite foo? (enter "h" for help) [Ynaqdhm] ', {:add_to_history => false}).and_return("s")
|
||||||
|
shell.file_collision("foo") {}
|
||||||
|
end
|
||||||
|
|
||||||
33
Support-latest-did_you_mean.patch
Normal file
33
Support-latest-did_you_mean.patch
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
From 98dbec75e4237fb8fb1b4190fd91cc22ad65068f Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?David=20Rodr=C3=ADguez?= <deivid.rodriguez@riseup.net>
|
||||||
|
Date: Wed, 22 Dec 2021 13:54:23 +0100
|
||||||
|
Subject: [PATCH] Support latest did_you_mean
|
||||||
|
|
||||||
|
Using `DidYouMean::SPELL_CHECKERS.merge!` has been deprecated.
|
||||||
|
---
|
||||||
|
lib/thor/error.rb | 13 +++++++++----
|
||||||
|
1 file changed, 9 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/thor/error.rb b/lib/thor/error.rb
|
||||||
|
index c7c285906..893b135ec 100644
|
||||||
|
--- a/lib/thor/error.rb
|
||||||
|
+++ b/lib/thor/error.rb
|
||||||
|
@@ -102,9 +102,14 @@ class MalformattedArgumentError < InvocationError
|
||||||
|
end
|
||||||
|
|
||||||
|
if Correctable
|
||||||
|
- DidYouMean::SPELL_CHECKERS.merge!(
|
||||||
|
- 'Thor::UndefinedCommandError' => UndefinedCommandError::SpellChecker,
|
||||||
|
- 'Thor::UnknownArgumentError' => UnknownArgumentError::SpellChecker
|
||||||
|
- )
|
||||||
|
+ if DidYouMean.respond_to?(:correct_error)
|
||||||
|
+ DidYouMean.correct_error(Thor::UndefinedCommandError, UndefinedCommandError::SpellChecker)
|
||||||
|
+ DidYouMean.correct_error(Thor::UnknownArgumentError, UnknownArgumentError::SpellChecker)
|
||||||
|
+ else
|
||||||
|
+ DidYouMean::SPELL_CHECKERS.merge!(
|
||||||
|
+ 'Thor::UndefinedCommandError' => UndefinedCommandError::SpellChecker,
|
||||||
|
+ 'Thor::UnknownArgumentError' => UnknownArgumentError::SpellChecker
|
||||||
|
+ )
|
||||||
|
+ end
|
||||||
|
end
|
||||||
|
end
|
||||||
@ -2,13 +2,15 @@
|
|||||||
|
|
||||||
Name: rubygem-%{gem_name}
|
Name: rubygem-%{gem_name}
|
||||||
Version: 1.1.0
|
Version: 1.1.0
|
||||||
Release: 3
|
Release: 4
|
||||||
Summary: Thor is a toolkit for building powerful command-line interfaces
|
Summary: Thor is a toolkit for building powerful command-line interfaces
|
||||||
License: MIT
|
License: MIT
|
||||||
URL: http://whatisthor.com/
|
URL: http://whatisthor.com/
|
||||||
Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem
|
Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem
|
||||||
Source1: %{gem_name}-%{version}-spec.txz
|
Source1: %{gem_name}-%{version}-spec.txz
|
||||||
Patch0: rubygem-thor-1.1.0-Fix-rspec-mocks-3.10.2-compatibility.patch
|
Patch0: rubygem-thor-1.1.0-Fix-rspec-mocks-3.10.2-compatibility.patch
|
||||||
|
Patch1: Support-latest-did_you_mean.patch
|
||||||
|
Patch2: Fix-expectations-for-ruby-3-treatment-of-hash-arg.patch
|
||||||
|
|
||||||
Requires: rubygem(io-console)
|
Requires: rubygem(io-console)
|
||||||
BuildRequires: ruby(release)
|
BuildRequires: ruby(release)
|
||||||
@ -39,8 +41,11 @@ Documentation for %{name}.
|
|||||||
|
|
||||||
pushd %{_builddir}
|
pushd %{_builddir}
|
||||||
%patch0 -p1
|
%patch0 -p1
|
||||||
|
%patch2 -p1
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
%patch1 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
gem build ../%{gem_name}-%{version}.gemspec
|
gem build ../%{gem_name}-%{version}.gemspec
|
||||||
%gem_install
|
%gem_install
|
||||||
@ -85,6 +90,9 @@ popd
|
|||||||
%{gem_instdir}/thor.gemspec
|
%{gem_instdir}/thor.gemspec
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Jan 17 2023 yaoxin <yaoxin30@h-partners.com> - 1.1.0-4
|
||||||
|
- Fix build failed due to ruby update to 3.1.3
|
||||||
|
|
||||||
* Wed Jun 29 2022 liyanan <liyanan32@h-partners.com> - 1.1.0-3
|
* Wed Jun 29 2022 liyanan <liyanan32@h-partners.com> - 1.1.0-3
|
||||||
- Fix build failed with rubygem-rspec-mocks
|
- Fix build failed with rubygem-rspec-mocks
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user