Compare commits

...

10 Commits

Author SHA1 Message Date
openeuler-ci-bot
3658f26881
!20 [sync] PR-19: Upgrade to version 1.2.1
From: @openeuler-sync-bot 
Reviewed-by: @jxy_git 
Signed-off-by: @jxy_git
2023-08-11 02:33:55 +00:00
wubijie
7967f6df6f Upgrade to version 1.2.1
(cherry picked from commit 9ca6cced276bdac98d6575ed740ca6ea9de5c3b2)
2023-08-11 10:25:31 +08:00
openeuler-ci-bot
889d881778
!18 Fix build failed due to ruby update to 3.1.3
From: @starlet-dx 
Reviewed-by: @small_leek 
Signed-off-by: @small_leek
2023-01-17 03:42:30 +00:00
starlet-dx
509e4276d6 Fix build failed due to ruby update to 3.1.3 2023-01-17 10:34:01 +08:00
openeuler-ci-bot
f55da64a15
!16 Fix build failed with rubygem-rspec-mocks
From: @lyn1001 
Reviewed-by: @jxy_git 
Signed-off-by: @jxy_git
2022-06-30 01:07:47 +00:00
lyn1001
e9fc685088 Fix build failed with rubygem-rspec-mocks 2022-06-29 18:32:33 +08:00
openeuler-ci-bot
267a9c06d4
!14 [sync] PR-13: add BuildRequires: rubygem-bigdecimal rubygem-io-console rubygem-openssl rubygem-psych
From: @openeuler-sync-bot 
Reviewed-by: @shinwell_hu 
Signed-off-by: @shinwell_hu
2022-04-18 02:35:28 +00:00
ouyanglearnning
15aaa1d3a3 add BuildRequires: rubygem-bigdecimal rubygem-io-console rubygem-openssl rubygem-psych
(cherry picked from commit faf92fec503f8fda68f31e44c3891b40b57f2979)
2022-04-14 16:39:33 +08:00
openeuler-ci-bot
65f5e9baee
!9 【轻量级 PR】:fix spell error in changelog
From: @kerongw 
Reviewed-by: @shinwell_hu 
Signed-off-by: @shinwell_hu
2022-03-24 12:34:05 +00:00
kerongw
b5f0764ad8
fix spell error in changelog 2022-03-15 00:58:12 +00:00
7 changed files with 310 additions and 22 deletions

View File

@ -0,0 +1,164 @@
From f87021fee1023457bf693dae95ccfe765c3bff61 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 575fd336..f034ec8d 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 b51c5e8a..b795a80a 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

View File

@ -0,0 +1,43 @@
From 3da3b44afdf2fa0bd618b87c5d862e9def1d5f4f Mon Sep 17 00:00:00 2001
From: Tim Diggins <tim@red56.uk>
Date: Fri, 4 Mar 2022 11:25:44 +0000
Subject: [PATCH] First fix CI so it's green (see #780, #781)
fix options spec.
allow line_editor spec to be run independently
running `rspec spec/line_editor_spec.rb` generated a double error
when it tries to re require "readline"
fix expectations for ruby 3 treatment of hash arg
try coveralls_reborn to fix ssl errors.
Note that we could also use the coveralls action as recommended
in https://github.com/tagliala/coveralls-ruby-reborn
but it seems like a github token is needed, which makes
it more complex for contributors
This does mean dropping coveralls for EOLed rubies but
do we really need to post to coveralls on each test run?
Wouldn't one test run be enough?
---
spec/parser/options_spec.rb | 4 +++-
1 file changed, 3 insertions(+), 1 deletions(-)
diff --git a/spec/parser/options_spec.rb b/spec/parser/options_spec.rb
index b1e50fbf..5caf9f67 100644
--- a/spec/parser/options_spec.rb
+++ b/spec/parser/options_spec.rb
@@ -116,7 +116,9 @@ def remaining
expected = "Unknown switches \"--baz\""
expected << "\nDid you mean? \"--bar\"" if Thor::Correctable
- expect { check_unknown! }.to raise_error(Thor::UnknownArgumentError, expected)
+ expect { check_unknown! }.to raise_error(Thor::UnknownArgumentError) do |error|
+ expect(error.to_s).to eq(expected)
+ end
end
it "skips leading non-switches" do

View File

@ -0,0 +1,58 @@
From 46d1422902e1c66b31fae79be7dca79ff8b2e81b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20Rodr=C3=ADguez?= <deivid.rodriguez@riseup.net>
Date: Wed, 15 Jun 2022 19:35:27 +0200
Subject: [PATCH] Reimplement did_you_mean suggestions to keep behaviour
accross rubies
Ruby 3.2 will introduce `Exception#detailed_message` and `did_you_mean`
has been already updated in Ruby 3.2 to use that.
The new behaviour means not changing the original `Exception#message`.
That means it is hard to get the previous error output, because
`Exception#detailed_message` includes not only `did_you_mean`
decorations, but also additional information like the exception class.
To fix this, I bring the old did_you_mean behavior into Thor, so that
the above changes do not affect us.
---
lib/thor/error.rb | 22 +++++++++-------------
1 file changed, 9 insertions(+), 13 deletions(-)
diff --git a/lib/thor/error.rb b/lib/thor/error.rb
index 893b135e..cc3dfe41 100644
--- a/lib/thor/error.rb
+++ b/lib/thor/error.rb
@@ -11,7 +11,15 @@ def initialize(dictionary)
end
end
- DidYouMean::Correctable
+ Module.new do
+ def to_s
+ super + DidYouMean.formatter.message_for(corrections)
+ end
+
+ def corrections
+ @corrections ||= self.class.const_get(:SpellChecker).new(self).corrections
+ end
+ end
end
# Thor::Error is raised when it's caused by wrong usage of thor classes. Those
@@ -100,16 +108,4 @@ class RequiredArgumentMissingError < InvocationError
class MalformattedArgumentError < InvocationError
end
-
- if Correctable
- 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

View File

@ -1,40 +1,50 @@
%global gem_name thor
Name: rubygem-%{gem_name}
Version: 1.1.0
Release: 1
Summary: Thor is a toolkit for building powerful command-line interfaces
License: MIT
URL: http://whatisthor.com/
Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem
Source1: %{gem_name}-%{version}-spec.txz
Name: rubygem-%{gem_name}
Version: 1.2.1
Release: 1
Summary: Thor is a toolkit for building powerful command-line interfaces
License: MIT
URL: http://whatisthor.com/
Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem
Source1: %{gem_name}-%{version}-spec.txz
Requires: rubygem(io-console)
BuildRequires: ruby(release)
BuildRequires: rubygems-devel
BuildRequires: ruby
BuildRequires: rubygem(io-console)
BuildRequires: rubygem(rspec)
BuildRequires: rubygem(webmock) rubygem(rexml)
BuildRequires: rubygem(did_you_mean)
BuildRequires: git
BuildArch: noarch
Patch0: rubygem-thor-1.2.1-Fix-expectations-for-ruby-3-treatment-of-hash-arg.patch
Patch1: rubygem-thor-1.2.1-Fix-rspec-mocks-3.11.0-compatibility.patch
Patch2: rubygem-thor-1.2.1-did_you_mean-ruby32.patch
Requires: rubygem(io-console)
BuildRequires: ruby(release)
BuildRequires: rubygems-devel
BuildRequires: ruby
BuildRequires: rubygem(io-console)
BuildRequires: rubygem(rake)
BuildRequires: rubygem(rspec)
BuildRequires: rubygem(webmock)
BuildRequires: rubygem(did_you_mean)
BuildRequires: git
BuildArch: noarch
%description
Thor is a toolkit for building powerful command-line interfaces.
%package doc
Summary: Documentation for %{name}
Requires: %{name} = %{version}-%{release}
BuildArch: noarch
%description doc
%description doc
Documentation for %{name}.
%prep
%setup -q -n %{gem_name}-%{version} -b1
%patch2 -p1
pushd %{_builddir}
%patch0 -p1
%patch1 -p1
popd
%build
gem build ../%{gem_name}-%{version}.gemspec
%gem_install
@ -73,13 +83,25 @@ popd
%files doc
%doc %{gem_docdir}
%doc %{gem_instdir}/CHANGELOG.md
%doc %{gem_instdir}/CONTRIBUTING.md
%doc %{gem_instdir}/README.md
%{gem_instdir}/thor.gemspec
%changelog
* Fri May 04 2022 wangkerong <wangkerong@h-partners.com> - 1.1.0-1
* Thu Aug 10 2023 wubijie <wubijie@kylinos.cn> - 1.2.1-1
- Upgrade to version 1.2.1
* 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
- Fix build failed with rubygem-rspec-mocks
* Wed Mar 30 2022 ouyangminxiang <ouyangminxiang@kylinsec.com.cn> - 1.1.0-2
- add BuildRequires: rubygem-bigdecimal rubygem-io-console rubygem-openssl rubygem-psych
to resolve koji build error during check
* Fri Mar 04 2022 wangkerong <wangkerong@h-partners.com> - 1.1.0-1
- Upgrade to 1.1.0
* Sat Sep 5 2020 liyanan <liyanan32@huawei.com> - 0.20.3-2
@ -87,3 +109,4 @@ popd
* Mon Aug 10 2020 yanan li <liyanan032@huawei.com> - 0.20.3-1
- Package init

Binary file not shown.

BIN
thor-1.2.1.gem Normal file

Binary file not shown.