Приложение Синатра в жемчужине - PullRequest
6 голосов
/ 06 апреля 2010

У меня есть приложение Sinatra, которое я создал, и я хотел бы упаковать его как двоичный файл на основе гемов.

У меня настроены gemspec и gem для создания подходящего исполняемого файла, который указывает на my_sinatra_app.rb (который является исполняемым), но сервер sinatra никогда не запускается. Есть идеи почему и как заставить это работать?

my_sinatra_app исполняемый файл:

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

1 Ответ

5 голосов
/ 06 апреля 2010

Обнаружено: D

Вам нужно обернуть ваше приложение Sinatra в класс следующим образом:

class MySinatraApp < Sinatra::Application
  # Stuff
end

Тогда в файле, который запускает приложение, вы можете просто сделать MySinatraApp.run! Simple:)

...