module Rails::Command

def invoke(full_namespace, args = [], **config)

Receives a namespace, arguments, and the behavior to invoke the command.
def invoke(full_namespace, args = [], **config)
  args = ["--help"] if rails_new_with_no_path?(args)
  full_namespace = full_namespace.to_s
  namespace, command_name = split_namespace(full_namespace)
  command = find_by_namespace(namespace, command_name)
  with_argv(args) do
    if command && command.all_commands[command_name]
      command.perform(command_name, args, config)
    else
      invoke_rake(full_namespace, args, config)
    end
  end
rescue UnrecognizedCommandError => error
  if error.name == full_namespace && command && command_name == full_namespace
    command.perform("help", [], config)
  else
    puts error.detailed_message
  end
  exit(1)
end