2009/2/27 Aureliano Calvo <[email protected]>:
>> > 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.

No, esta bien :-)

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

En *nix podes hacer escape de los espacios :-D

>>
>>
>> > 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 ;).
>

Si hay mas nuevas, por lo menos podes poner p114 :-D

186-26 y 186-27 RC2 ;-)

http://rubyforge.org/projects/rubyinstaller

Saludos,
--
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry



-- 
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a