diff options
author | Bundlerbot <bot@bundler.io> | 2019-12-14 12:09:55 +0000 |
---|---|---|
committer | David RodrÃguez <deivid.rodriguez@riseup.net> | 2019-12-15 12:15:23 +0100 |
commit | 2b781e5ab96f5eeefa069f6503aba4250a2627f0 (patch) | |
tree | 76708f3544163496a15bcc1f34770d719aed2185 /lib | |
parent | d1c4e5dc26468fb4127ae5dbdb2db4751b5970d3 (diff) | |
download | bundler-2b781e5ab96f5eeefa069f6503aba4250a2627f0.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>
(cherry picked from commit 935c7272ba0f17f81823e704b54627b75cf7f913)
Diffstat (limited to 'lib')
-rw-r--r-- | lib/bundler/vendor/thor/lib/thor/base.rb | 22 | ||||
-rw-r--r-- | lib/bundler/vendor/thor/lib/thor/nested_context.rb | 29 | ||||
-rw-r--r-- | lib/bundler/vendor/thor/lib/thor/version.rb | 2 |
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 |