def invoke(name=nil, *args)
if name.nil?
warn "[Thor] Calling invoke() without argument is deprecated. Please use invoke_all instead.\n#{caller.join("\n")}"
return invoke_all
end
args.unshift(nil) if Array === args.first || NilClass === args.first
task, args, opts, config = args
klass, task = _retrieve_class_and_task(name, task)
raise "Expected Thor class, got #{klass}" unless klass <= Thor::Base
args, opts, config = _parse_initialization_options(args, opts, config)
klass.send(:dispatch, task, args, opts, config) do |instance|
instance.parent_options = options
end
end