Dir

@dir=Dir[“docs/{.jpg,.gif}”]

Estoy probando mi aplicación en local, a la hora de sacar los ficheros
de un directorio con Dir, no me sale, mi variable @dir está vacía, sólo
me funciona en el servidor, en local no se puede?
Muchas gracias

On 5/4/07, Miguel Angel Calleja Lázaro [email protected] wrote:

@dir=Dir[“docs/{.jpg,.gif}”]

Estoy probando mi aplicación en local, a la hora de sacar los ficheros
de un directorio con Dir, no me sale, mi variable @dir está vacía, sólo
me funciona en el servidor, en local no se puede?

Umm… no se porque te funciona en el servido pero si quieres buscar
jpgs o
gifs en un directorio, la cadena deberia ser ligeramente diferente [1],
“docs/*.{jpg,gif}” :

[aitor@Atalanta:~ 10:29:57] irb

dir = Dir[“Multibase/*.{sct,txt}”]
=> [“Multibase/gen_web.sct”, “Multibase/web_pedi.sct”]

[1] http://dev.rubycentral.com/ref/ref_c_dir.html

On May 4, 2007, at 11:07 AM, Miguel Angel Calleja Lázaro wrote:

@dir=Dir[“docs/{.jpg,.gif}”]

Estoy probando mi aplicación en local, a la hora de sacar los ficheros
de un directorio con Dir, no me sale, mi variable @dir está vacía,
sólo
me funciona en el servidor, en local no se puede?

Esta raro, podrias por favor enviar dos sesiones respectivas con un
ls seguido de ruby -e ‘puts Dir…’ por si vemos algo?

– fxn

He probado a poner lo que has dicho:
ls ruby -e ‘puts Dir[“docs/{.jpg,.gif}”]’
ls: invalid option – e
Try `ls --help’ for more information.

ese “ls” sobra.

No se si lo he escrito bien, qué hace ruby -e?

Xavier N.
escribió:

He probado a poner lo que has dicho:
ls ruby -e ‘puts Dir[“docs/{.jpg,.gif}”]’
ls: invalid option – e
Try `ls --help’ for more information.

No se si lo he escrito bien, qué hace ruby -e?

La idea es: primero un ls que muestra sin duda que los archivos estan
ahi, y en el siguiente prompt ruby -e ‘puts Dir…’ que demuestra la
salida en esa misma shell. Y eso para cada maquina. Copy & paste de
las sesiones y a la lista.

XDDD … Step By Step Lyrics by Whitney Houston[1]

[1] :

Supongo que Xavier N. se refería a hacer un ls y copiar el resultado;
y luego un ruby … y copiar el resultado otra vez, no todo junto :wink:

Saludos.

On May 4, 2007, at 12:26 PM, Miguel Angel Calleja Lázaro wrote:

He probado a poner lo que has dicho:
ls ruby -e ‘puts Dir[“docs/{.jpg,.gif}”]’
ls: invalid option – e
Try `ls --help’ for more information.

No se si lo he escrito bien, qué hace ruby -e?

La idea es: primero un ls que muestra sin duda que los archivos estan
ahi, y en el siguiente prompt ruby -e ‘puts Dir…’ que demuestra la
salida en esa misma shell. Y eso para cada maquina. Copy & paste de
las sesiones y a la lista.

– fxn

Xavier N.
escribió:


Ror-es mailing list
[email protected]
simplelogica.net

Joe, qué torpeza…
En el servidor:

  • ls docs
    grafico.jpg img_contacto.jpg img_empleo.jpg img_instalaciones.jpg
    img_seguridad.jpg
    img_cecom.jpg img_destacado.jpg img_foto.jpg img_interesa.jpg
    lat_destacado.jpg

  • ruby -e ‘puts Dir[“docs/{.jpg,.gif}”]’
    docs/img_instalaciones.jpg
    docs/img_destacado.jpg
    docs/img_interesa.jpg
    docs/img_seguridad.jpg
    docs/img_cecom.jpg
    docs/lat_destacado.jpg
    docs/img_empleo.jpg
    docs/img_foto.jpg
    docs/grafico.jpg
    docs/img_contacto.jpg

En local:

  • dir docs
    27/04/2007 09:20 2.931 grafico.jpg
    22/04/2007 23:00 4.309 img_cecom.jpg
    25/04/2007 23:00 4.411 img_contacto.jpg
    22/04/2007 20:19 19.090 img_destacado.jpg
    23/04/2007 23:30 3.745 img_empleo.jpg
    26/04/2007 22:39 22.386 img_foto.jpg
    22/04/2007 20:37 1.998 img_instalaciones.jpg
    22/04/2007 20:37 3.052 img_interesa.jpg
    22/04/2007 20:37 2.500 img_seguridad.jpg
    26/04/2007 22:50 10.506 lat_destacado.jpg
  • ruby -e ‘puts Dir[“docs/{.jpg,.gif}”]’
    docs/grafico.jpg
    docs/img_cecom.jpg
    docs/img_contacto.jpg
    docs/img_destacado.jpg
    docs/img_empleo.jpg
    docs/img_foto.jpg
    docs/img_instalaciones.
    docs/img_interesa.jpg
    docs/img_seguridad.jpg
    docs/lat_destacado.jpg

Tanto en servidor como en local me funciona, el controlador que uso para
sacar los ficheros es el mismo para los dos

Entonces el glob como tal parece que funciona bien en las dos
maquinas, como el directorio del glob es relativo el siguiente
sospechoso es el directorio de trabajo de cada accion

Exacto. Eso quizas algun tipo de problema de permisos (al ejecutar la
operacion con el usuario del servidor web). Pueden ser diferentes cosas,
cuentanos lo que te da el snippet de Xavier.

On May 4, 2007, at 12:45 PM, Miguel Angel Calleja Lázaro wrote:

docs/img_destacado.jpg

  • dir docs
  • ruby -e ‘puts Dir[“docs/{.jpg,.gif}”]’

Tanto en servidor como en local me funciona, el controlador que uso
para
sacar los ficheros es el mismo para los dos

Estupendo!

Entonces el glob como tal parece que funciona bien en las dos
maquinas, como el directorio del glob es relativo el siguiente
sospechoso es el directorio de trabajo de cada accion. Podrias ver si
haciendo esto

logger.debug(“cwd = #{Dir.getwd}”)
Dir.chdir(RAILS_ROOT) do
@dirs = …
end

funciona? El chdir con bloque es muy sano, con ello te aseguras de
que no dependes de que se tocara el cwd en otro punto de la
aplicacion (si hay riesgo de tal cosa), y de que tu mismo tampoco lo
alteras.

– fxn

On May 4, 2007, at 1:32 PM, Miguel Angel Calleja Lázaro wrote:

si añado el public si funciona
popup_files/:id.:format?id_nom=pagina_foto_peq&tipo=imagen#>
<http://cecom.host-sonoratec.biz/admin/grupo/
* public/docs/img_contacto.jpg
<http://cecom.host-sonoratec.biz/admin/grupo/
popup_files/:id.:format?id_nom=pagina_foto_peq&tipo=imagen#>

Con lo que hacía antes pensaba que partía de public y por éso lo puse
relativo el docs

Vale ya va saliendo.

Lo que me falta por cuadrar ahora es por que funcionaba en ningun
lugar, tienes algun chdir en la aplicacion que pudiera hacer que
fuera RAILS_ROOT/public en el servidor?

– fxn

Xavier N.
escribió:

Ror-es mailing list
[email protected]
simplelogica.net

Que va, de hecho desconocía el chdir hasta ahora, no se si tendrá que
ver con que el dispach esté apuntando en public en el servidor, pero no
he tocado nada más, en local lo estoy corriendo con webrick

On May 4, 2007, at 1:45 PM, Miguel Angel Calleja Lázaro wrote:


Ror-es mailing list
[email protected]
simplelogica.net

Que va, de hecho desconocía el chdir hasta ahora, no se si tendrá que
ver con que el dispach esté apuntando en public en el servidor,
pero no
he tocado nada más, en local lo estoy corriendo con webrick

Vale, entonces creo que ya esta, simplemente las dos instancias
corren con cwd distinto debido a esa diferencia, y por ello los
directorios relativos lo eran a distintos directorios. El Dir.chdir
bloque es lo suyo ahi. Bien!

– fxn

Xavier N.
escribió:

lugar, tienes algun chdir en la aplicacion que pudiera hacer que

corren con cwd distinto debido a esa diferencia, y por ello los

Muchas gracias por todo y lo de ls ruby -e…ejem, os he hecho sonreir
un rato XD

Xavier N.
escribió:

lat_destacado.jpg
docs/grafico.jpg
22/04/2007 20:37 1.998 img_instalaciones.jpg
docs/img_instalaciones.
Estupendo!

Ror-es mailing list
[email protected]
simplelogica.net

Igual va a ser por la ruta, docs está dentro de public

cwd = /home/hostsono/public_html/proyecto/public

Si lo hago así, no muestra nada ahora:
logger.debug(“cwd = #{Dir.getwd}”)
Dir.chdir(RAILS_ROOT) do
@dir = Dir[“docs/*.{jpg,gif}”]
end

si añado el public si funciona
logger.debug(“cwd = #{Dir.getwd}”)
Dir.chdir(RAILS_ROOT) do
@dir = Dir[“public/docs/*.{jpg,gif}”]
end

* public/docs/img_instalaciones.jpg
  <http://cecom.host-sonoratec.biz/admin/grupo/popup_files/:id.:format?id_nom=pagina_foto_peq&tipo=imagen#>
* public/docs/img_destacado.jpg
  <http://cecom.host-sonoratec.biz/admin/grupo/popup_files/:id.:format?id_nom=pagina_foto_peq&tipo=imagen#>
* public/docs/img_interesa.jpg
  <http://cecom.host-sonoratec.biz/admin/grupo/popup_files/:id.:format?id_nom=pagina_foto_peq&tipo=imagen#>
* public/docs/img_seguridad.jpg
  <http://cecom.host-sonoratec.biz/admin/grupo/popup_files/:id.:format?id_nom=pagina_foto_peq&tipo=imagen#>
* public/docs/img_cecom.jpg
  <http://cecom.host-sonoratec.biz/admin/grupo/popup_files/:id.:format?id_nom=pagina_foto_peq&tipo=imagen#>
* public/docs/lat_destacado.jpg
  <http://cecom.host-sonoratec.biz/admin/grupo/popup_files/:id.:format?id_nom=pagina_foto_peq&tipo=imagen#>
* public/docs/img_empleo.jpg
  <http://cecom.host-sonoratec.biz/admin/grupo/popup_files/:id.:format?id_nom=pagina_foto_peq&tipo=imagen#>
* public/docs/img_foto.jpg
  <http://cecom.host-sonoratec.biz/admin/grupo/popup_files/:id.:format?id_nom=pagina_foto_peq&tipo=imagen#>
* public/docs/grafico.jpg
  <http://cecom.host-sonoratec.biz/admin/grupo/popup_files/:id.:format?id_nom=pagina_foto_peq&tipo=imagen#>
* public/docs/img_contacto.jpg
  <http://cecom.host-sonoratec.biz/admin/grupo/popup_files/:id.:format?id_nom=pagina_foto_peq&tipo=imagen#>

Con lo que hacía antes pensaba que partía de public y por éso lo puse
relativo el docs