如何从rake文件中运行ruby类?

时间:2013-08-13 12:41:46

标签: ruby-on-rails ruby rake rake-task rakefile

我想从 sample.rake 文件中运行ruby类。

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

我想从 sample.rake (例如ruby myruby.rb

运行此功能

2 个答案:

答案 0 :(得分:6)

在这里添加@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

答案 1 :(得分:1)

您可以使用系统调用

e.g。 http://www.ruby-doc.org/core-2.0/Kernel.html#method-i-system

或者假设你这样做的原因是 myruby.rb 是一个普通的ruby脚本,它只适用于执行:

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