2010-04-06 12 views
5

Ho un'applicazione Sinatra che ho creato e mi piacerebbe comprimerla come un binario basato sulla gemma.App di Sinatra in una gemma

Ho il mio gemspec e gem set up per generare un eseguibile adatto che punta allo my_sinatra_app.rb (che è eseguibile) ma il server sinatra non viene mai eseguito. Qualche idea, perché e come farlo funzionare?

my_sinatra_app eseguibile:

#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby 
# 
# This file was generated by RubyGems. 
require 'rubygems' 

version = ">= 0" 

if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then 
    version = $1 
    ARGV.shift 
end 

gem 'my_sinatra_app', version 
load Gem.bin_path('my_sinatra_app', 'my_sinatra_app', version) 

risposta

5

Scoperto: D

Hai bisogno di avvolgere il vostro Sinatra applicazione in una classe in questo modo:

class MySinatraApp < Sinatra::Application 
    # Stuff 
end 

Poi nel file che esegue l'applicazione puoi semplicemente fare MySinatraApp.run! Semplice :)

+0

Aveva esattamente lo stesso problema oggi; questo mi ha davvero aiutato. Grazie! – mark