&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
}}

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS