Method: Bundler::Thor::Command#run
- Defined in:
- lib/bundler/vendor/thor/lib/thor/command.rb
permalink #run(instance, args = []) ⇒ Object
By default, a command invokes a method in the thor class. You can change this implementation to create custom commands.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/bundler/vendor/thor/lib/thor/command.rb', line 21 def run(instance, args = []) arity = nil if private_method?(instance) instance.class.handle_no_command_error(name) elsif public_method?(instance) arity = instance.method(name).arity instance.__send__(name, *args) elsif local_method?(instance, :method_missing) instance.__send__(:method_missing, name.to_sym, *args) else instance.class.handle_no_command_error(name) end rescue ArgumentError => e handle_argument_error?(instance, e, caller) ? instance.class.handle_argument_error(self, e, args, arity) : (raise e) rescue NoMethodError => e handle_no_method_error?(instance, e, caller) ? instance.class.handle_no_command_error(name) : (raise e) end |