【发布时间】:2013-11-15 23:46:39
【问题描述】:
我们希望有一些维护任务利用路由或帮助程序中使用的代码。
在模块化 Sinatra 应用程序中实现此目的的最佳方式是什么?
例如,我们有一个邮件程序。我们希望从路由中调用它。但我们也希望通过 rake 任务发送定期安排的电子邮件。
【问题讨论】:
我们希望有一些维护任务利用路由或帮助程序中使用的代码。
在模块化 Sinatra 应用程序中实现此目的的最佳方式是什么?
例如,我们有一个邮件程序。我们希望从路由中调用它。但我们也希望通过 rake 任务发送定期安排的电子邮件。
【问题讨论】:
将公共代码重构为模块(或类)到不同的源文件:
# 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
【讨论】: