要約
循環したタスクの呼び出しを検出するためのクラスです。
例:
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][edit]-
与えられたタスク名を第二引数の Rake::InvocationChain に追加します。
- [PARAM] task_name:
- タスク名を指定します。
- [PARAM] chain:
- 既に存在する 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][edit]-
与えられたタスク名と一つ前の Rake::InvocationChain を用いて自身を初期化します。
- [PARAM] task_name:
- タスク名を指定します。
- [PARAM] tail:
- 一つ前の 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][edit]-
与えられたタスク名を追加して新しい Rake::InvocationChain を返します。
- [PARAM] task_name:
- 追加するタスク名を指定します。
- [EXCEPTION] RuntimeError:
- 循環したタスクの呼び出しを検出した場合に発生します。
# 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][edit]-
与えられたタスク名が自身に含まれる場合は真を返します。そうでない場合は偽を返します。
- [PARAM] task_name:
- タスク名を指定します。
# 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][edit]-
トップレベルのタスクから自身までの依存関係を文字列として返します。
# 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][edit]-
Rake::InvocationChain::EmptyInvocationChain のインスタンスを表します。