Forum: Rails-ES Validar URLs git/svn

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Juan José Vidal (Guest)
on 2009-04-14 04:35
(Received via mailing list)
Muy buenas,

En una aplicación (para gestión de extensiones de Spree) le pido al
usuario en un formulario la URL de su SCM, y tengo que comprobar que el
repositorio existe.
El problema es que el usuario puede ponerme la URL de la web del SCM
(github, gitorious, RubyForge...), cosa que es fácil de validar, o la
URL del repositorio en sí. Mi problema es que no sé cómo validar urls
que no sean HTTP, HTTPS. No me refiero a si la URL está bien formada o
no, eso con regexps es fácil, quiero comprobar si existe o no.

Comprobación OK
------------------------
https://github.com/stffn/declarative_authorization/tree
http://ym4r.rubyforge.org/svn/

Cómo valido la existencia de estas URLs?
------------------------
git://github.com/stffn/declarative_authorization.git
svn://rubyforge.org/var/svn/ym4r

En la documentación del módulo URI no he visto cómo hacerlo
http://www.ruby-doc.org/stdlib/libdoc/uri/rdoc/cla...

Se os ocurre algo?

Gracias por adelantado.
Un saludo!
Guillermo (Guest)
on 2009-04-14 11:00
(Received via mailing list)
2009/4/14 Juan José Vidal <removed_email_address@domain.invalid>

> Muy buenas,
>
> Comprobación OK
> ------------------------
> https://github.com/stffn/declarative_authorization/tree
> http://ym4r.rubyforge.org/svn/
>

Una pregunta: ¿Como estás validando esas rutas?


> Cómo valido la existencia de estas URLs?
> ------------------------
> git://github.com/stffn/declarative_authorization.git


y git+ssh://user:pass@server/repo
y ssh://user:pass@server/repo



Y que tal un u = URI.parse('git+ssh://user:pass@server/repo')

self.errors.add(:repo,'No se admite el protocolo que quieres') and
return
false unless %w(http git+ssh git ssh svn).include u.schema
self.errors.add(:repo,'Necesitas especificar usuario para acceder al
repo')
and return false if %w(git+ssh ssh).include u.schema && u.user.empty?
self.errors.add(:repo, 'Dame la contraseña, anda...') and return false
if
!u.user.empty? && u.password.empty?

Bueno... más o menos el concepto.
This topic is locked and can not be replied to.