summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Rodríguez <deivid.rodriguez@riseup.net>2019-12-13 20:41:13 +0100
committerSHIBATA Hiroshi <hsbt@ruby-lang.org>2019-12-15 16:41:10 +0900
commit0fab9005387549d5c5b13cf330012d02e5312bc2 (patch)
tree6cfcea16d7676781cb32a0008e91746e67e1ffc1
parent38002a8adbd98266426940d829429a30af0622a4 (diff)
Vendor thor 1.0.0
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/2753
-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