Ruta actual + abrir imagen

Hola,

Ya me he revisado varias veces el tema de las variables globales, pero
no encuentro ninguna variable que me diga la ruta actual en la que está
corriendo el codigo, si por ejemplo, quiero listar los archivos de esa
ruta, o voy a guardar un archivo, y quiero decirle al usuario donde se
ha guardado el archivo, necesito saber el nombre de la ruta, como lo
puedo averiguar.

Otra duda que tengo, es: despues de crear un archivo con File.open, como
puedo hacer para abrirlo?. El caso esque no quiero leerlo, quiero
abrirlo directamente en su propia extension, ya sea pdf, txt , png etc

saludos y muchas gracias

2008/5/2 Diego G. [email protected]:

Ya me he revisado varias veces el tema de las variables globales, pero
no encuentro ninguna variable que me diga la ruta actual en la que está
corriendo el codigo

El directorio de trabajo esta disponible en

Dir.pwd

, si por ejemplo, quiero listar los archivos de esa

ruta,

Mirate la clase Dir.

o voy a guardar un archivo, y quiero decirle al usuario donde se

ha guardado el archivo, necesito saber el nombre de la ruta, como lo
puedo averiguar.

Mirate los metodos de la clase File, como dirname, basename,
expand_path, extname, … hay unos cuantos para trabajar sobre strings
como nombres de archivo.

Otra duda que tengo, es: despues de crear un archivo con File.open, como
puedo hacer para abrirlo?. El caso esque no quiero leerlo, quiero
abrirlo directamente en su propia extension, ya sea pdf, txt , png etc

Que quieres decir?

Xavier N. wrote:

Que quieres decir?

A lo que me refiero es que lo que se hacer es leer un archivo y mostrar
su contendio. Pero no me interesa eso, porque si el archivo es por
ejemplo una imagen, no me saldrá su contendio por panalla, lo que quiero
es abrir ese archivo desde el programa determinado para ese tipo de
arhchivos.

Xavier N. wrote:
Ok, entonces la solucion es llamar a la consola del sistema. Pero
entonces, con el objetivo de hacer el programa lo maximo multiplataforma
posible, me surgen dos dudas:

Primera: necesito saber que OS está corriendo el script, como lo puedo
averiguar?
Segundo: Cuando sepa el os, hacer un case, para windows start, para mac
open, y para linux, he estado buscando y no se que comando abre un
archivo…:S

saludos

2008/5/2 Diego G. [email protected]:

Xavier N. wrote:

Que quieres decir?

A lo que me refiero es que lo que se hacer es leer un archivo y mostrar
su contendio. Pero no me interesa eso, porque si el archivo es por
ejemplo una imagen, no me saldrá su contendio por panalla, lo que quiero
es abrir ese archivo desde el programa determinado para ese tipo de
arhchivos.

Aja, eso se consigue llamando a una utilidad del sistema via system().

En Windows es start, en Mac open, y en Linux tengo entendido que es
normal que este instalada una cierta utilidad cuyo nombre no recuerdo
(alguien?). Por ejemplo en el mac:

system(“open foo.pdf”) # lanza la aplicacion asociada con PDFs

Hay una gema llamada launchy que en principio encapsula esto pero no
la he usado.

Hola,

Xavier N. wrote:
Ok, entonces la solucion es llamar a la consola del sistema. Pero
entonces, con el objetivo de hacer el programa lo maximo multiplataforma
posible, me surgen dos dudas:

Sólo una aclaración, por si acaso. Si estamos hablando de un script
stand-alone de ruby, entonces nada que comentar. Pero si estás hablando
de una aplicación Rails, entonces habría que precisar que en esta
aplicación el código Ruby se ejecuta solamente en tu servidor, y los
clientes hacen peticiones HTTP, nada más.

Esto quiere decir que si estás pensando en que un cliente desde una
máquina accede a un servidor que está en otra, y desde código Ruby en
esa otra máquina quieres controlar los ficheros (guardar, abrir, etc…)
del cliente, no vas a poderlo hacer. Si es una aplicación Rails y
siempre el cliente que va a hacer la petición corre en la misma máquina
que el servidor, sí podrías.

Un saludo,

javier ramírez

Gracias por la aclaracion ;), pero no, no quiero controlar archivos
remotos del cliente, en cualquier caso, si paso la aplicacion a rails,
seria en el servidor, pero de momento eso no es problema porque es un
script en stand-alone de ruby.
Asi que sigo con los mismos problemas.

saludos

Bueno, pues he estado mirandome la documentación de launchy, y lo he
instalado para probarlo, pero no consigo abrir el archivo, la
documentación tampoco es muy extensa, y ademas al estar en ingles no la
he logrado entender muy bien. Lo que logro con launchy como mucho es
abrir una pagina web, pero no cualquier otro archivo…Si alguien me
puede guiar un poco con esta libreria…o si no, aunque sea menos
portable tendré que hacerlo de la otra manera, mirando OS, y llamando a
la consola…

gracias

2008/5/2 Diego G. [email protected]:

Xavier N. wrote:
Ok, entonces la solucion es llamar a la consola del sistema. Pero
entonces, con el objetivo de hacer el programa lo maximo multiplataforma
posible, me surgen dos dudas:

Primera: necesito saber que OS está corriendo el script, como lo puedo
averiguar?

Esta en la constante RUBY_PLATFORM, de todos modos si necesitas
portabilidad primero investigaria launchy porque esta pensado para
ello.

Segundo: Cuando sepa el os, hacer un case, para windows start, para mac
open, y para linux, he estado buscando y no se que comando abre un
archivo…:S

Mira la seccion “Case Expressions” de

http://www.rubycentral.com/pickaxe/tut_expressions.html