>
> > Estoy escribiendo un rakefile multiplataforma (Windows y Unixes) para
> > compilar proyectos programados en Erlang. Para eso, necesito obtener el
> > password de los archivos con black-slash en Windows y slash común en
> Unix,
> > ya que tengo que pasarlo en una llamada a un shell:
> >
> > sh("erl -sname #{START_MODULE} -pa #{ebin_path}")
> >
> > El problema que tengo es que probando en Windows, ruby me da el password
> con
> > forward slashes. Corriendo en el irb:
> >
> >>> curr = Pathname('.')
> > => #<Pathname:.>
> >>> curr.realpath
> > => #<Pathname:C:/toto/erlang>
> >
> > Peor aún, el File::SEPARATOR es:
> >
> >>> File::SEPARATOR
> > => "/"
> >
>
> File::ALT_SEPARATOR
> => "\\"
>
> Si usas pathname... suerte con eso :-)
> Pathname no es una de las mejores clases cross platform.


>
> > ¿Cómo hago para obtener el path "posta" para cada plataforma? No encontré
> > ningún método que me de el path bien.
> >
>
> if File::ALT_SEPARATOR then
>  path.gsub!(File::SEPARATOR, File::ALT_SEPARATOR)
> end



Es una lástima que Pathname sea "Windows-evil". Igual la monkey-patchié y
anduvo. Con tu info nueva ahora quedó así:

#Hack to generate paths with back-slashes
class Pathname

    alias_method :old_to_s, :to_s

    def to_s
        File::ALT_SEPARATOR ?
old_to_s.gsub(FILE::SEPARATOR,FILE::ALT_SEPARATOR) : old_to_s
    end
end

Si se te ocurre algo mejor, soy todo oídos.

>
>
>
> Mas alla de eso, los paths tienen que ser "escapados" para evitar que
> los espacios puedan interferir.
>
> "\"#{path}\""


Sip, igual eso es tanto en UNIX como en Windows.


>
>
>
> > Por último, la versión de ruby que estoy usando en Windows es:
> >>ruby --version
> > ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]
> >
> > Y la instalé usando el one-click installer.
> >
>
> Medio vieja che...
>
> ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32]
>
>
Es lo que hay. Ahora con el nuevo maintaner seguro que el one-click
installer anda mucho mejor ;).
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a