循環したタスクの呼び出しを検出するためのクラスです。
例:
a = Rake::InvocationChain::EMPTY b = a.append('task_a').append('task_b') p b.to_s # => "TOP => task_a => task_b" a.append('task_a').append('task_b').append('task_a') # => 例外発生
append(task_name, chain) -> Rake::InvocationChain
[permalink][rdoc]与えられたタスク名を第二引数の Rake::InvocationChain に追加します。
# Rakefile での記載例とする
task default: :test_rake_app
task :test_rake_app do
chain = Rake::InvocationChain::EMPTY
b = Rake::InvocationChain.append("task_a", chain)
b.to_s # => "TOP => task_a"
end
new(task_name, tail)
[permalink][rdoc]与えられたタスク名と一つ前の Rake::InvocationChain を用いて自身を初期化します。
# Rakefile での記載例とする
task default: :test_rake_app
task :test_rake_app do
tail = Rake::InvocationChain.new("task_a", Rake::InvocationChain::EMPTY)
tail.to_s # => "TOP => task_a"
b = Rake::InvocationChain.new("task_b", tail)
b.to_s # => "TOP => task_a => task_b"
end
append(task_name) -> Rake::InvocationChain
[permalink][rdoc]与えられたタスク名を追加して新しい Rake::InvocationChain を返します。
# Rakefile での記載例とする
task default: :test_rake_app
task :test_rake_app do
invocation_chain= Rake::InvocationChain.new("task_a", Rake::InvocationChain::EMPTY)
invocation_chain.append("task_b") # => LL("task_b", "task_a")
end
member?(task_name) -> bool
[permalink][rdoc]与えられたタスク名が自身に含まれる場合は真を返します。そうでない場合は偽を返します。
# Rakefile での記載例とする
task default: :test_rake_app
task :test_rake_app do
invocation_chain = Rake::InvocationChain.new("task_a", Rake::InvocationChain::EMPTY)
invocation_chain.member?("task_a") # => true
invocation_chain.member?("task_b") # => false
end
to_s -> String
[permalink][rdoc]トップレベルのタスクから自身までの依存関係を文字列として返します。
# Rakefile での記載例とする
task default: :test_rake_app
task :test_rake_app do
invocation_chain= Rake::InvocationChain.new("task_a", Rake::InvocationChain::EMPTY)
invocation_chain.to_s # => "TOP => task_a"
end
EMPTY -> Rake::InvocationChain::EmptyInvocationChain
[permalink][rdoc]Rake::InvocationChain::EmptyInvocationChain のインスタンスを表します。