8

FakeProfilePictures::Photo.all_large_names_2x(以下で定義)は絶対パス名の配列を返しますがDir["picture_*@2x.*"]、 の正しいディレクトリから実行するirbと、ベース名(必要なもの)しか取得できません。ベース名を取得する最良の方法は何ですか? .map { |f| File.basename(f) }コメントに示されているように追加することでそれを実行できることはわかっていますが、より簡単/より良い/より速く/より強力な方法はありますか?

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
4

2 に答える 2

21

できるよ

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

ブロックの後、元のディレクトリが復元されます。

于 2011-04-27T21:45:06.403 に答える
3

グロブする前にchdir入ることができますが、私はすべてを実行します。DIRbasename

于 2011-04-27T21:41:39.120 に答える