module Rake::TaskManager

[edit]

要約

タスクを管理するためのモジュールです。

目次

インスタンスメソッド

インスタンスメソッド

self[task_name, scopes = nil] -> Rake::Task[permalink][rdoc][edit]

与えられたタスク名にマッチするタスクを検索します。

[PARAM] task_name:
タスク名を指定します。
[PARAM] scopes:
スコープを指定します。

# Rakefile での記載例とする

task default: :test_rake_app
task :test_rake_app do
  Rake.application["test_rake_app"] # => <Rake::Task test_rake_app => []>
end
clear[permalink][rdoc][edit]

全てのタスクとルールをクリアします。


# Rakefile での記載例とする

task default: :test_rake_app
task :test_rake_app do
  Rake.application.tasks # => [<Rake::Task default => [test_rake_app]>, <Rake::Task test_rake_app => []>]
  Rake.application.clear # => []
  Rake.application.tasks # => []
end
create_rule(*args) { ... }[permalink][rdoc][edit]

与えられたパラメータに従ってルールを作成します。

[PARAM] args:
ルールに与えるパラメータを指定します。

# Rakefile での記載例とする

task default: :test_rake_app
task :test_rake_app do
  rule = Rake.application.create_rule '.txt' => '.md' do |t|
    "#{t}"
  end
  p rule # => [[/\.txt$/, [], [".md"], nil, #<Proc:0x0000558dd2e32d20 /path/to/Rakefile:5>]]
end
current_scope -> Array[permalink][rdoc][edit]

現在のスコープを返します。


# Rakefile での記載例とする

task default: :test_rake_app
task :test_rake_app do
  Rake.application.current_scope # => LL()
end
define_task(task_class, *args) { ... } -> Rake::Task[permalink][rdoc][edit]

タスクを定義します。

[PARAM] task_class:
タスククラスを指定します。
[PARAM] args:
タスクに渡すパラメータを指定します。

# Rakefile での記載例とする

task default: :test_rake_app
task :test_rake_app do
  Rake.application.define_task(Rake::Task, :t) # => <Rake::Task t => []>
end
enhance_with_matching_rule(task_name, level = 0) -> Rake::Task | nil[permalink][rdoc][edit]

与えられたタスク名にマッチしたルールが存在する場合は、そのタスクに見つかったルールの事前タスクとアクションを追加して返します。

[PARAM] task_name:
タスクの名前を指定します。
[PARAM] level:
現在のルール解決のネストの深さを指定します。
[EXCEPTION] RuntimeError:
ルールの解決時にオーバーフローした場合に発生します。
in_namespace(name) {|name_space| ... } -> Array[permalink][rdoc][edit]

与えられた名前の名前空間でブロックを評価します。

[PARAM] name:
名前を指定します。

# Rakefile での記載例とする

task default: :test_rake_app

namespace :sample do
  def hoge
    puts "hoge"
  end
end

task :test_rake_app do
  task.application.in_namespace("sample") do
    hoge # => "hoge"
  end
end
intern(task_class, task_name) -> Rake::Task[permalink][rdoc][edit]

タスクを検索します。

タスクが見つかれば見つかったタスクを返します。見つからなければ、与えられた型のタスクを作成して返します。

[PARAM] task_class:
タスクのクラスを指定します。
[PARAM] task_name:
タスクの名前を指定します。

# Rakefile での記載例とする

task default: :test_rake_app

task :test_rake_app do |task|
  task.application.intern(Rake::Task, "test_rake_app") # => <Rake::Task test_rake_app => []>
  task.application.intern(Rake::Task, "sample_task")   # => <Rake::Task sample_task => []>
end
last_description -> String[permalink][rdoc][edit]
last_comment -> String

Rakefile 内の最新の詳細説明を追跡するためのメソッドです。


# Rakefile での記載例とする

task default: :test_rake_app1

desc "test1"
task :test_rake_app1 do |task|
  p task.application.last_description # => "test2"
end

desc "test2"
task :test_rake_app2 do |task|
end
last_description=(description)[permalink][rdoc][edit]

最新の詳細説明をセットします。


# Rakefile での記載例とする

task default: :test_rake_app1

desc "test1"
task :test_rake_app1 do |task|
  task.application.last_description # => "test2"
  task.application.last_description = "test3"
  task.application.last_description # => "test3"
end

desc "test2"
task :test_rake_app2 do |task|
end
lookup(task_name, initial_scope = nil) -> Rake::Task | nil[permalink][rdoc][edit]

与えられたタスク名にマッチするタスクを検索します。

このメソッドは、ファイルタスクやルールを合成せずにタスクを探します。特別なスコープ ('^' など) が存在します。スコープが省略された場合は現在のスコープを使用します。

[PARAM] task_name:
タスク名を指定します。
[PARAM] initial_scope:
検索するスコープを指定します。

# Rakefile での記載例とする

task default: :test_rake_app

task :test_rake_app do |task|
  task.application.lookup("test_rake_app") # => <Rake::Task test_rake_app => []>
end
resolve_args(args) -> Array[permalink][rdoc][edit]

タスクやルールに与えられたパラメータを解釈します。

[PARAM] args:
パラメータを指定します。
[RETURN]
[task_name, arg_name_list, prerequisites] を返します。
synthesize_file_task(task_name) -> Rake::FileTask | nil[permalink][rdoc][edit]

与えられたタスク名をもとにファイルタスクを合成します。

[PARAM] task_name:
タスク名を指定します。
[RETURN]
与えられたタスク名と同名のファイルが存在する場合は、ファイルタスクを作成して返します。そうでない場合は nil を返します。
[EXCEPTION] RuntimeError:
タスクを合成できなかった場合に発生します。

# Rakefile での記載例とする

task default: :test_rake_app

task :test_rake_app do |task|
  task.application.synthesize_file_task("sample_file") # => nil
  IO.write("sample_file", "")
  task.application.synthesize_file_task("sample_file") # => <Rake::FileTask sample_file => []>
end
tasks -> Array[permalink][rdoc][edit]

全てのタスクリストを返します。


# Rakefile での記載例とする
require 'pp'

task default: :test_rake_app2

task :test_rake_app1 do |task|
end

task :test_rake_app2 do |task|
  pp task.application.tasks
  # => [<Rake::Task default => [test_rake_app2]>,
  #    <Rake::Task test_rake_app1 => []>,
  #    <Rake::Task test_rake_app2 => []>]
end