ruby absolute-path dir

¿Cómo obtener Ruby Dir#glob para devolver basenames, no absolute_paths?



absolute-path (2)

FakeProfilePictures::Photo.all_large_names_2x (definido a continuación) devuelve una matriz de nombres de rutas absolutas, pero cuando hago Dir["picture_*@2x.*"] Desde el directorio correcto en irb , obtengo los basenames (lo que quiero) . ¿Cuál es la mejor manera de obtener los nombres básicos? Sé que podría hacerlo agregando .map { |f| File.basename(f) } .map { |f| File.basename(f) } como se muestra en el comentario, pero ¿hay alguna manera más fácil / mejor / más rápida / más fuerte ?

module FakeProfilePictures class Photo DIR = File.expand_path(File.join(File.dirname(__FILE__), "photos")) # ... def self.all_large_names_2x @@all_large_names_2x ||= Dir[File.join(DIR, "picture_*@2x.*")] # .map { |f| File.basename(f) } end end end


Podrías entrar en DIR antes de englobar, pero simplemente correría todo a través del basename .


Tu puedes hacer

Dir.chdir(DIR) do Dir["picture_*@2x.*"] end

después del bloque, se restaura el directorio original.