ruby - raised - the asset "default.css" is not present in the asset pipeline.
¿Cómo convertir un método Ruby en un bloque? (3)
¿Hay alguna manera de simplificar el siguiente código?
nombres de archivos es una lista de nombres de archivos (cadenas), por ejemplo, ["foo.txt", "bar.c", "baz.yaml"]
filenames.map { |f| File.size(f) }
¿Hay alguna manera de convertir "File.size" en un proc o un bloque? Para los métodos en objetos existentes, puedo hacer &:method
. ¿Hay algo análogo para los métodos de nivel de módulo?
El nombre de ruta de Pathname
proporciona un enfoque más orientado a objetos para archivos y directorios. Tal vez haya una manera de refactorizar su lista de filelist
, por ejemplo, en lugar de:
filenames = Dir.entries(".")
filenames.map { |f| File.size(f) }
usted usaría:
require ''pathname''
filenames = Pathname.new(".").entries
filenames.map(&:size)
Puedes usar Object#method(method_name) :
filenames.map(&File.method(:size))
filesize = proc { |f| File.size(f) }
filenames.map(&filesize)