2017-06-17 20 views
0

私はbundle install終了後に削除されるファイルのglobスタイルのパターンを示しています.removeファイル(例えばapp/**/*.erb)でカスタムRails app templateを実装しています:、(上記のコメントを参照してください)デバッグコードによるとDir.globがRailsアプリケーションテンプレートで空の配列を返すのはなぜですか?

removals = File.readlines('/path/to/.remove') 
cwd = Dir.getwd 

after_bundle do 
    # Process removals 
    removals.each do |pattern| 

    puts 'glob:'+cwd+'/'+pattern   # glob:/Users/acobster/starfruit/app/**/*.erb 
    puts Dir.glob(cwd+'/'+pattern).count # 0 
    puts `tree #{cwd}/app`     # all files in the app tree, 
              # including several .erb files 

    Dir.glob(cwd+'/'+pattern).each do |filepath| 
     puts "  removing #{filepath}" 
     remove_file(filepath) 
    end 
    end 
end 

削除したいファイル(この場合、アプリケーション/ツリーの下のすべての.erbファイル)がツリーにありますが、Dir.glob('/Users/acobster/starfruit/app/**/*.erb')に相当するものは空の配列を返しています。

Dir.glob('/Users/acobster/starfruit/app/**/*.erb')irbから実行すると、3つの.erbファイルが存在する配列が正しく返されます。

何が起こっているのですか?

答えて

1

私はグロブパターンから改行を取り除くことを忘れていました。私は最初の行を

に変更しました。
removals = File.readlines('/path/to/.remove').map(&:strip).reject(&:empty?) 
関連する問題