在Ruby on Rails中,rake任务是从另一个rake文件调用一个函数

时间:2014-04-28 21:08:44

标签: ruby-on-rails function rake dry code-duplication

如您所见,我已经在rake文件中定义了一个函数。没问题,工作正常。问题是,当我在另一个rake文件中声明def get_user_input时。在这种情况下,函数从另一个.rake文件调用你能提出什么建议吗?感谢。

namespace :backtest do

  def get_user_input
    if ENV['date_from'].present? && ENV['date_until'].present? 
      # get input...
    else
      abort 'Sample usage: blah blah...'
    end
  end

  desc "Start backtest"
  task :start => :environment do
    get_user_input
    # rest of the code...
  end
end

2 个答案:

答案 0 :(得分:0)

你可以这样做:

require 'rake'
load 'your_rake_file_name_here.rake'
get_user_input

答案 1 :(得分:-1)

将功能移动到模块中,问题就消失了。

namespace :backtest do

 Module MY
  def self.get_user_input
    if ENV['date_from'].present? && ENV['date_until'].present? 
      # get input...
    else
      abort 'Sample usage: blah blah...'
    end
  end
 end

 desc "Start backtest"
 task :start => :environment do
   My.get_user_input
   # rest of the code...
 end

end