2010-04-06 16 views
5

Tengo una aplicación Sinatra que he creado y me gustaría empaquetarla como un binario basado en gemas.Aplicación Sinatra en una gema

Tengo mi gemspec y gema configurados para generar un ejecutable adecuado que apunta al my_sinatra_app.rb (que es ejecutable) pero el servidor sinatra nunca se ejecuta. ¿Alguna idea de por qué y cómo hacer que funcione?

my_sinatra_app ejecutable:

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

Respuesta

5

Descubierto: D

Es necesario para envolver su aplicación Sinatra en una clase de este modo:

class MySinatraApp < Sinatra::Application 
    # Stuff 
end 

A continuación, en el archivo que se ejecuta la aplicación usted puede simplemente hacer MySinatraApp.run! Simple :)

+0

Tenía exactamente el mismo problema hoy; esto realmente ayudó. ¡Gracias! – mark

Cuestiones relacionadas