耙不执行某些任务,错误地说“调用<task> s(first_time,not_needed)”

时间:2015-09-11 23:04:43

标签: ruby rake rakefile

我正在创建一个rakefile来自动执行某些任务。我有一个非常基本的rake任务设置,我想打电话给:run

desc "Run instances in the runs directory"
task :run, [:filter] do |t, args|
  args.with_defaults(:filter => "*")
  runs = Dir["runs/"+args.filter]
  puts "Running " + runs.length.to_s + " instances..."
  for run_path in runs
    run(run_path)
  end
end

非常简单,对吧!?

  • 我输入rake run,并为所有路径调用run函数。
  • rake run["*"]会得到与预期相同的结果。
  • rake run["nothing"]没有运行,正如预期的那样(我没有名为“nothing”的文件)。它会打印Running 0 instances...
  • rake run["*real-file-name*"]什么都不做!即使文件名应该匹配,它甚至不会命中puts语句。
  • rake run["TEST"]什么都不做!它也不会像它应该那样打印Running 0 instances...(比如“没有”,“TEST”不存在),但它没有点击puts语句。奇怪的是,rake run["TE"]rake run["ST"]都有效。

对于不起作用的情况,添加跟踪标志(-t)会给出以下输出:

** Invoke runs (first_time, not_needed)

对于有效的案例,我得到:

** Invoke run (first_time)
** Execute run

请注意,无效的案例正在调用runs。复数。即使我将其指定为run。到底发生了什么事?

更新 我注意到当我在某些目录中运行rakefile而不是其他目录时会发生这种情况。

使用:

  • ruby​​ 2.0.0p645(2015-04-13)[i386-mingw32]
  • rake,版本10.4.2
  • Window 7

0 个答案:

没有答案