【问题标题】:How can I run a ruby class from rake file?如何从 rake 文件运行 ruby​​ 类?
【发布时间】: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


【解决方案1】:

除了@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

【讨论】:

    【解决方案2】:

    你可以使用系统调用

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

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

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

    【讨论】:

    • myruby.rb 是一个 ruby​​ 类。没有从 sample.rake 运行的特定方法。在 myruby.rb 我已经开始...救援...阻止就是这样。我需要像“ruby myruby.rb”一样运行。这会给我带来我想要的。
    猜你喜欢
    • 2013-02-18
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    • 2010-10-09
    相关资源
    最近更新 更多