1

我们希望有一些维护任务可以利用路由或助手中使用的代码。

在模块化 Sinatra 应用程序中实现此目的的最佳方法是什么?

例如,我们有一个邮件程序。我们希望从路由中调用它。但我们也希望通过 rake 任务发送定期安排的电子邮件。

4

1 回答 1

1

将公共代码重构为模块(或类)到不同的源文件:

# mailer.rb

module Mailer
  def common_method0
  end

  def common_method1
  end
end

在您的 Sinatra 应用程序中,需要 mailer.rb 并在需要的地方混入您的模块:

require_relative 'mailer'

# ...

helpers do
  include Mailer

  # other helpers
end

在您的 rake 任务中,执行相同的操作:

# Rakefile

require_relative 'mailer'
include Mailer

task :mailer do
  common_method0

  # ...
end
于 2013-11-15T15:46:39.417 回答