2010-04-06 13 views
5

Mam stworzoną aplikację Sinatra i chciałbym ją spakować jako plik binarny oparty na klejnotach.Aplikacja Sinatra w klejnocie

Mam moje gemspec i gem skonfigurowane do generowania odpowiedniego pliku wykonywalnego, który wskazuje na my_sinatra_app.rb (który jest wykonywalny), ale serwer Sinatra nigdy nie działa. Wszelkie pomysły, dlaczego i jak to działa?

my_sinatra_app wykonywalny:

#!/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) 

Odpowiedz

5

Okazało się: D

Trzeba owinąć aplikację Sinatra w klasie tak:

class MySinatraApp < Sinatra::Application 
    # Stuff 
end 

Następnie w pliku, który uruchamia aplikację możesz po prostu zrobić: MySinatraApp.run! Prosty :)

+0

Miał dokładnie ten sam problem dzisiaj; to naprawdę pomogło. Dzięki! – mark