【发布时间】:2013-08-15 02:04:47
【问题描述】:
我想从 sample.rake 文件运行一个 ruby 类。
考虑 myruby.rb 是一个 ruby 文件。
我想从 sample.rake 运行它,例如 ruby myruby.rb
【问题讨论】:
标签: ruby-on-rails ruby rake rake-task rakefile
我想从 sample.rake 文件运行一个 ruby 类。
考虑 myruby.rb 是一个 ruby 文件。
我想从 sample.rake 运行它,例如 ruby myruby.rb
【问题讨论】:
标签: ruby-on-rails ruby rake rake-task rakefile
除了@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
【讨论】:
你可以使用系统调用
例如http://www.ruby-doc.org/core-2.0/Kernel.html#method-i-system
或者假设您这样做的原因是 myruby.rb 是一个普通的 ruby 脚本,只在执行时起作用:
您可以考虑将脚本的内容封装到一个方法中,require 'myruby' 在 rake 任务中并在 rake 任务中执行所述方法。
【讨论】: