>
> > 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