summaryrefslogtreecommitdiff
path: root/dev-ruby/thor
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-03-18 00:29:05 +0000
committerV3n3RiX <venerix@koprulu.sector>2023-03-18 00:29:05 +0000
commit467e2131896a3030032cd5b0fab2094a045bf9d0 (patch)
tree534578ca7ef61b3eb30fee861db78c0ae58e2fa6 /dev-ruby/thor
parent1f254b1ee917690b4f8f7738fdcfc295ee304ff7 (diff)
gentoo auto-resync : 18:03:2023 - 00:29:05
Diffstat (limited to 'dev-ruby/thor')
-rw-r--r--dev-ruby/thor/Manifest2
-rw-r--r--dev-ruby/thor/files/thor-1.2.1-tests.patch211
-rw-r--r--dev-ruby/thor/thor-1.2.1-r1.ebuild74
3 files changed, 287 insertions, 0 deletions
diff --git a/dev-ruby/thor/Manifest b/dev-ruby/thor/Manifest
index 45fd6f982388..19995a22f89f 100644
--- a/dev-ruby/thor/Manifest
+++ b/dev-ruby/thor/Manifest
@@ -1,5 +1,7 @@
+AUX thor-1.2.1-tests.patch 13418 BLAKE2B 13d3fdde30676171abe62b8fb7acc0a0564eb2041658e520a0838b6fb272303db9c0fad60170707b0676a9c39950ebcab778abaaf683716dd8546620e60e1a6e SHA512 a08e95e3df2c338b7bc7f700dcf04801fa743f0dc04abf5fde1030f306b78c536da1554e06736604acfaf6bd98622b4258dcec1791339727a57384cb226f8dcf
DIST thor-git-1.1.0.tgz 98252 BLAKE2B 1537cfe6e7cc0d92cc8bde56f0e2acf06b6ee4cb366a5686bb62de43dd15709a4aeaf1b30c3dfa71a6d6c7570e702deeebab6da324204388ac427337514be3f0 SHA512 d1872a834478c5a2054dde6f55e93f6765fd628536f99f888bd7495436c88658537d48c44ef1e5ad6d1388edfa294ea2a3f3cbde32c19b7d2253b78bc62bf9d0
DIST thor-git-1.2.1.tgz 96638 BLAKE2B 03826d2545c61f5fd433325bc65b244921fd0ed0f030ea173fa6f558ca9fd62ac52dca829c66de32569321b3d52353f306559fa34c34e472b1aa52184ba3d812 SHA512 88e58b6ca6c812cb84ab59e0ee8afcd8fa70b6c24d403cd5ea05d1d40ac30e85f2c7412611cc176eb541d16878e309d25c7e4284f64c760475925ffe359250b9
EBUILD thor-1.1.0.ebuild 1723 BLAKE2B 459c1c524d3d43ff934ff3780e8bb03c2b5c32892cab1d7e25bae4cfd90db7a70589c6b50bbe0eb088dd52a7934b07160c048af7a54ceeb0c2d25cc046fbcec5 SHA512 db6fa89e2b968639cc67a5aba134a43f41179e26d7daa9eca26934904e3ef2d8a9ad724a59c70c3b91e9578565b25c62e1ef4220557802991b8e4f342d5b7e85
+EBUILD thor-1.2.1-r1.ebuild 1960 BLAKE2B 812517c6f0d184f7d58d3288186f46eb6bbfd3ef806945665a46a95dc9ec71d701a4f24a7a26f38929fc17b110a5384e9bbdf5f31e025f86feda97da0f727503 SHA512 defbce4f7d67e8d86fa781279339d8291d0915e6348c76af230925f53a677c2156c35bd6d3d12f230a83c942cf28f9f0d79fe3d956938958c94e2064c55da550
EBUILD thor-1.2.1.ebuild 1902 BLAKE2B 71dcd34dee99dcde6bdd1ed0d744f671ec8ea7435cbee4e52ce4c69b5fd8ab2aab5c20afcafc4d506e11731ed60fce0b4ea3e6e8b5ba188e884a309ecae7ebad SHA512 b31a46b511fc7eaab4843fd7eedca78adb85907d66c9f7cc7868213d204776eac80456e3b6718d548b7693fdf965739621858b306b16bc6aac167f752c82503e
MISC metadata.xml 681 BLAKE2B 18af48da65edba93d19a6a8541a5a79b63485d15108736b8b2c964a57006dd8e0bcc094261045a2598ab5537c3162cffc012e35dbff7c631e45f8de1657b5cd4 SHA512 ccc14bf0262a52707216bedfa51c46d5de83b04308d6768dd73e9d63a0e807ae5f069b9730b5e88311ddf51185aaec12144ffd8540044baf2b18d1208dee380a
diff --git a/dev-ruby/thor/files/thor-1.2.1-tests.patch b/dev-ruby/thor/files/thor-1.2.1-tests.patch
new file mode 100644
index 000000000000..bd59deda2338
--- /dev/null
+++ b/dev-ruby/thor/files/thor-1.2.1-tests.patch
@@ -0,0 +1,211 @@
+https://github.com/rails/thor/issues/817
+https://github.com/rails/thor/commit/0def4cfba5bf470f76877eb3b8a8895f0018e574
+https://github.com/rails/thor/commit/46d1422902e1c66b31fae79be7dca79ff8b2e81b
+
+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
+
+--- 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
+--- 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
+
+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.
+--- 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
diff --git a/dev-ruby/thor/thor-1.2.1-r1.ebuild b/dev-ruby/thor/thor-1.2.1-r1.ebuild
new file mode 100644
index 000000000000..42cd077c6593
--- /dev/null
+++ b/dev-ruby/thor/thor-1.2.1-r1.ebuild
@@ -0,0 +1,74 @@
+# Copyright 2000-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
+
+RUBY_FAKEGEM_RECIPE_TEST="rspec3"
+RUBY_FAKEGEM_DOCDIR="rdoc"
+RUBY_FAKEGEM_EXTRADOC="README.md"
+RUBY_FAKEGEM_BINWRAP="thor"
+
+RUBY_FAKEGEM_GEMSPEC="thor.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="A scripting framework that replaces rake and sake"
+HOMEPAGE="http://whatisthor.com/"
+
+SRC_URI="https://github.com/erikhuda/${PN}/archive/v${PV}.tar.gz -> ${PN}-git-${PV}.tgz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux"
+IUSE="doc"
+
+USE_RUBY="ruby27" ruby_add_bdepend "
+ test? (
+ dev-ruby/childlabor
+ dev-ruby/webmock
+ )"
+
+RDEPEND+=" !<dev-ruby/thor-0.20.3-r1:0"
+
+PATCHES=(
+ "${FILESDIR}"/thor-1.2.1-tests.patch
+)
+
+all_ruby_prepare() {
+ # Remove rspec default options (as we might not have the last
+ # rspec).
+ rm .rspec || die
+
+ # Remove Bundler
+ #rm Gemfile || die
+ sed -i -e '/[Bb]undler/d' Thorfile || die
+
+ # Remove mandatory coverage collection using simplecov which is not
+ # packaged.
+ sed -i -e '/require .simplecov/,/^end/ s:^:#:' spec/helper.rb || die
+
+ # Avoid a spec that requires UTF-8 support, so LANG=C still works,
+ # bug 430402
+ sed -i -e '/uses maximum terminal width/,/end/ s:^:#:' spec/shell/basic_spec.rb || die
+
+ # Avoid specs depending on git, bug 724058
+ rm -f spec/quality_spec.rb || die
+
+ # Avoid currently broken readline specs (already fixed upstream)
+ #rm -f spec/line_editor/readline_spec.rb spec/line_editor_spec.rb || die
+
+ # Avoid spec failing on whitespace difference in error message
+ sed -i -e '/raises an error for unknown switches/askip "whitespace differences"' spec/parser/options_spec.rb || die
+}
+
+each_ruby_test() {
+ case ${RUBY} in
+ *ruby30|*ruby31|*ruby32)
+ einfo "Skipping tests due to circular dependencies"
+ ;;
+ *)
+ RSPEC_VERSION=3 ruby-ng_rspec spec || die
+ ;;
+ esac
+}