Skip to content
This repository has been archived by the owner on Apr 14, 2021. It is now read-only.

Vendor thor 1.0.0 #7480

Merged
1 commit merged into from Dec 14, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
22 changes: 14 additions & 8 deletions lib/bundler/vendor/thor/lib/thor/base.rb
Expand Up @@ -2,6 +2,7 @@
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"
Expand Down Expand Up @@ -418,14 +419,20 @@ def remove_command(*names)
# 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:
Expand Down Expand Up @@ -607,7 +614,7 @@ def find_and_refresh_command(name) #:nodoc:
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
Expand All @@ -624,8 +631,7 @@ def method_added(meth)
# 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)
Expand Down
29 changes: 29 additions & 0 deletions 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
2 changes: 1 addition & 1 deletion lib/bundler/vendor/thor/lib/thor/version.rb
@@ -1,3 +1,3 @@
class Bundler::Thor
VERSION = "0.20.3"
VERSION = "1.0.0"
end