2011-05-25 6 views
5

¿Es posible que Thor se queje de opciones de línea de comandos mal escritas/no reconocidas?¿Se ha quejado Thor de las opciones mal escritas en una aplicación de línea de comando de Ruby?

Ejemplo:

maid --slient # Oops! Misspelled. It should give a warning or usage info. 
maid --silent # Do the behavior I programmed for the "silent" option. 

Thor es muy agradable, pero no es de mucha ayuda para mí si sólo se hace caso omiso de entrada que no sabe cómo manejar. Limpieza también tiene una opción para especificar un archivo de reglas Maid así:

maid --rules=rules.rb # Good 
maid -r rules.rb  # Short version 
maid rules.rb   # Oops! That's not valid. It should give a warning or usage info. 

¿Qué puedo hacer para que Thor se quejan en los dos casos anteriores?

El código de la gema de limpieza está en GitHub en http://github.com/benjaminoakes/maid

Respuesta

6

llegué a tweet de Yehuda Katz. (¡Gracias de nuevo!) Aquí está la solución:

class YourApp < Thor 
    check_unknown_options! 
    # ... 
end 

Lo probé y lo agregué a mi proyecto. Aquí está el nuevo comportamiento:

$ maid --slient 
Unknown switches '--slient' 

$ maid rules.rb 
Could not find task "rules.rb". 

Ver the full code on GitHub.

Cuestiones relacionadas