Comment puis-je traiter une URL en Ruby pour extraire les composants (système, nom d'utilisateur, mot de passe, hôte, etc.)?
Question
Je suis en train de créer un programme en utilisant Ruby (et Net :: SSH) pour se connecter aux serveurs et effectuer certaines tâches. Les détails du serveur sont à fournir quelque chose comme:
ssh://user:pass@host:port (for a host that does not yet have SSH keys)
ou
user@host
Net :: SSH attend le format suivant:
Net::SSH.start('host', 'user', :password => "password")
Est il y a gem / stdlib qui peut traiter l'URL dans ce format? Ou un regex simple qui peut correspondre aux différentes parties?
Note:. Je suis au courant, et l'utilisation, Capistrano, mais dans ce cas je besoin de plus faibles contrôle de niveau
La solution
URI et
Autres conseils
Il y a une classe URI qui devrait aider. Vous pourriez avoir à remplacer le système de ssh
avec http
main Mais d'abord, je ne pense pas que URI
comprend le système de ssh
hors de la boîte.