2011-03-22 70 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