2011-03-22 71 views
2

我有一個rake任務運行我的服務器sinatra,它不工作,紅寶石中的同一個腳本工作。爲什麼?我可以在rake任務中運行服務器sinatra嗎?任務耙,ruby的問題

task :server do 

begin 
require 'rubygems' 
require 'sinatra' 
rescue LoadError 
    p "first install sinatra using:" 
    p "gem install sinatra" 
    exit 1 
end 

get '/:file_name' do |file_name| 
    File.read(File.join('public', file_name)) 
end 

exit 0 
end 

回答

3

創建從西納特拉繼承的類:: Base類

#app.rb 
require 'sinatra' 

class TestApp < Sinatra::Base 
    get '/' do 
    "Test" 
    end 
end 

,然後再從耙您的應用程序:

#Rakefile 
$:.unshift File.join(File.dirname(__FILE__), ".") 

require 'rake' 
require 'app' 

task :server do 
    TestApp.run! 
end