summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBundlerbot <bot@bundler.io>2019-12-14 12:09:55 +0000
committerBundlerbot <bot@bundler.io>2019-12-14 12:09:55 +0000
commit935c7272ba0f17f81823e704b54627b75cf7f913 (patch)
tree4792e6395b0fbefea6920ae5a1da0a25e7daf374
parentf143253656981d64fac8b3c781172c716e3a3f4e (diff)
parent6e2e1929b3696cc022b2a24af4927ccc47dfd9bd (diff)
downloadbundler-935c7272ba0f17f81823e704b54627b75cf7f913.tar.gz
Merge #7480
7480: Vendor thor 1.0.0 r=deivid-rodriguez a=deivid-rodriguez ### What was the end-user problem that led to this PR? The problem was that `thor` 1.0.0 has been released, so we should vendor it. ### What is your fix for the problem, implemented in this PR? My fix is to vendor it. Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
-rw-r--r--lib/bundler/vendor/thor/lib/thor/base.rb22
-rw-r--r--lib/bundler/vendor/thor/lib/thor/nested_context.rb29
-rw-r--r--lib/bundler/vendor/thor/lib/thor/version.rb2
3 files changed, 44 insertions, 9 deletions
diff --git a/lib/bundler/vendor/thor/lib/thor/base.rb b/lib/bundler/vendor/thor/lib/thor/base.rb
index bd2ebb6156..9ba5243378 100644
--- a/lib/bundler/vendor/thor/lib/thor/base.rb
+++ b/lib/bundler/vendor/thor/lib/thor/base.rb
@@ -2,6 +2,7 @@ require_relative "command"
require_relative "core_ext/hash_with_indifferent_access"
require_relative "error"
require_relative "invocation"
+require_relative "nested_context"
require_relative "parser"
require_relative "shell"
require_relative "line_editor"
@@ -418,14 +419,20 @@ class Bundler::Thor
# remove_command :this_is_not_a_command
# end
#
- def no_commands
- @no_commands = true
- yield
- ensure
- @no_commands = false
+ def no_commands(&block)
+ no_commands_context.enter(&block)
end
+
alias_method :no_tasks, :no_commands
+ def no_commands_context
+ @no_commands_context ||= NestedContext.new
+ end
+
+ def no_commands?
+ no_commands_context.entered?
+ end
+
# Sets the namespace for the Bundler::Thor or Bundler::Thor::Group class. By default the
# namespace is retrieved from the class name. If your Bundler::Thor class is named
# Scripts::MyScript, the help method, for example, will be called as:
@@ -607,7 +614,7 @@ class Bundler::Thor
def inherited(klass)
super(klass)
Bundler::Thor::Base.register_klass_file(klass)
- klass.instance_variable_set(:@no_commands, false)
+ klass.instance_variable_set(:@no_commands, 0)
end
# Fire this callback whenever a method is added. Added methods are
@@ -624,8 +631,7 @@ class Bundler::Thor
# Return if it's not a public instance method
return unless public_method_defined?(meth.to_sym)
- @no_commands ||= false
- return if @no_commands || !create_command(meth)
+ return if no_commands? || !create_command(meth)
is_thor_reserved_word?(meth, :command)
Bundler::Thor::Base.register_klass_file(self)
diff --git a/lib/bundler/vendor/thor/lib/thor/nested_context.rb b/lib/bundler/vendor/thor/lib/thor/nested_context.rb
new file mode 100644
index 0000000000..fd36b9d43f
--- /dev/null
+++ b/lib/bundler/vendor/thor/lib/thor/nested_context.rb
@@ -0,0 +1,29 @@
+class Bundler::Thor
+ class NestedContext
+ def initialize
+ @depth = 0
+ end
+
+ def enter
+ push
+
+ yield
+ ensure
+ pop
+ end
+
+ def entered?
+ @depth > 0
+ end
+
+ private
+
+ def push
+ @depth += 1
+ end
+
+ def pop
+ @depth -= 1
+ end
+ end
+end
diff --git a/lib/bundler/vendor/thor/lib/thor/version.rb b/lib/bundler/vendor/thor/lib/thor/version.rb
index 98f2b79081..7750d27637 100644
--- a/lib/bundler/vendor/thor/lib/thor/version.rb
+++ b/lib/bundler/vendor/thor/lib/thor/version.rb
@@ -1,3 +1,3 @@
class Bundler::Thor
- VERSION = "0.20.3"
+ VERSION = "1.0.0"
end