0
私は別のタスクに依存するレーキルールを作ろうとしています。タスク依存関係のレイクルール
task :foo do
@iv = 42
end
task :bar => :foo do
p @iv
end
Rake::Task[:bar].invoke
結果:
42
私は正規表現を使用できるようにルールを使用できるようにしたいと思いますが、以下のように、私はタスクのみを使用する場合、それは動作します。しかし、私はエラーを取得しています:
task :foo do
@iv = 42
end
rule /bar/ => :foo do
p @iv
end
Rake::Task["bar"].invoke
結果:
/Users/max/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task_manager.rb:284:in `block in make_sources': Don't know how to handle rule dependent: :foo (RuntimeError)
from /Users/max/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task_manager.rb:267:in `map'
from /Users/max/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task_manager.rb:267:in `make_sources'
from /Users/max/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task_manager.rb:245:in `attempt_rule'
from /Users/max/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task_manager.rb:130:in `block in enhance_with_matching_rule'
from /Users/max/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task_manager.rb:128:in `each'
from /Users/max/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task_manager.rb:128:in `enhance_with_matching_rule'
from /Users/max/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task_manager.rb:56:in `[]'
from /Users/max/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:361:in `[]'
from baz.rb:63:in `<main>'
がどのように私は別のタスクに依存したルールを使用していますか?
編集:
ルールの下で述べたように、それが文字列として依存関係だ取ります
task :foo do
@iv = 42
end
rule /bar/ => "foo" do
p @iv
end
Rake::Task["bar"].invoke
#=> 42