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
on 02.05.2008 00:08
on 02.05.2008 00:42
2008/5/2 Diego Guti <ruby-forum-incoming@andreas-s.net>: > 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?
on 02.05.2008 11:05
Xavier Noria 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.
on 02.05.2008 11:59
2008/5/2 Diego Guti <ruby-forum-incoming@andreas-s.net>: > Xavier Noria 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.
on 02.05.2008 12:56
Xavier Noria 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
on 02.05.2008 13:19
Hola, > Xavier Noria 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
on 02.05.2008 13:23
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
on 02.05.2008 14:32
2008/5/2 Diego Guti <ruby-forum-incoming@andreas-s.net>: > Xavier Noria 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
on 02.05.2008 15:29
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