2013-11-15 44 views
1

我們希望有一些維護任務可以利用路由或幫助程序中使用的代碼。在Sinatra中,在路線和耙子任務之間共享代碼?

在模塊化Sinatra應用程序中完成此操作的最佳方法是什麼?

例如,我們有一個郵件程序。我們希望它從一條路線被調用。但我們也希望定期發送來自rake任務的計劃電子郵件。

回答

0

重構普通代碼模塊(或類)到不同的源文件:

# mailer.rb 

module Mailer 
    def common_method0 
    end 

    def common_method1 
    end 
end 

在你西納特拉的應用程序,需要mailer.rb,它需要的地方你的模塊中混合:

require_relative 'mailer' 

# ... 

helpers do 
    include Mailer 

    # other helpers 
end 

在你耙的任務,做同樣的:

# Rakefile 

require_relative 'mailer' 
include Mailer 

task :mailer do 
    common_method0 

    # ... 
end 
相關問題