4

我想从sample.rake文件运行一个 ruby​​ 类。

考虑myruby.rb是一个 ruby​​ 文件。

我想从sample.rake运行它ruby myruby.rb

4

2 回答 2

9

除了@tobias 在这里要说的内容之外,您还可以使用示例脚本

样本内容myruby.rb

puts "hello world"

创建文件名为Rakefile

task :default => [:test]

task :test do
    ruby "my_file.rb"
end

现在,如果您调用rake它应该hello world在控制台中归档文本。

更新

如果您按照@tobias 的建议将调用包装在函数调用中会更有意义

所以你Rakefile会变成这样

require './myruby.rb'
task :default => [:test]

task :test do
  ruby "my_file.rb"
end

task :test2 do
  do_something
end

myruby.rb

def do_something
  puts "do something"
end

现在rake test2应该吐出来do something

于 2013-08-13T12:59:28.827 回答
1

你可以使用系统调用

例如http://www.ruby-doc.org/core-2.0/Kernel.html#method-i-system

或者假设您这样做的原因是myruby.rb是一个普通的 ruby​​ 脚本,只在执行时起作用:

您可以考虑将脚本的内容封装到一个方法中,require 'myruby'在 rake 任务中并在 rake 任务中执行所述方法。

于 2013-08-13T12:51:48.793 回答