&tag(Rake); *目次 [#ic3c26d7] #contents *関連ページ [#pa364404] *参考情報 [#b32d7e30] *概要 [#t0682dfa] -RubyのMake的なもの。 -Ruby1.9以降標準添付されている。 *基本 [#j81424de] -Rakefileを作成 #pre{{ task :hello do puts 'hello' end }} -rake実行 #pre{{ rake hello }} **t.prerequisitesってなに? [#n6daff2a] -以下のprerequisitesには、"README.md"が入っている。 -タスク実行前に存在しないといけないファイルとみなされる。 #pre{{ task :hello2 => 'README.md' do |t| puts "##### hello2 #####" puts t.prerequisites.first end }} *Tips [#o9518e99] **ファイル一覧を取得 [#o8d4c519] -FileListを使ってファイル一覧を取得できる。[[class Rake::FileList (Ruby 2.0.0):http://fistfvck.sakura.ne.jp/ruby/rurima-2.1.0/class/-rake=3a=3a-file-list.html]] #pre{{ task :hello do puts 'hello' end #task :list do # # #end fl = FileList.new('**/*') fl.exclude('tmp/**/*') fl.exclude('mydb/**/*') fl.exclude('log/**/*') fl.each do |f| puts f end }} -FileListのパターンは[[singleton method Dir.[] (Ruby 1.9.3):http://docs.ruby-lang.org/ja/1.9.3/method/Dir/s/=5b=5d.html]]を参照のこと。 --'**/'はディレクトリに再帰的にマッチする。 --foo/**/bar は foo/bar, foo/*/bar, foo/*/*/bar にマッチする。 --foo/**/*は、foo/*、foo/*/*、foo/*/*/*にマッチする。 -デフォルトで除外されているパターンが存在するため、例えばドットファイルなど取得できないものがある。その場合以下のようにincludeする。 #pre{{ fl = FileList.new('*').include('.*') fl.each do |f| puts f end }}