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

Commit

Permalink
Vendor thor 1.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
deivid-rodriguez committed Dec 13, 2019
1 parent 3bd06e7 commit deb91d9
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 8 deletions.
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

0 comments on commit deb91d9

Please sign in to comment.