2011-02-09 2 views
2

Я строю новую версию Lovers с Sinatra. Вы можете посмотреть Lovers source code on GitHub.Как запустить мое модульное приложение Sinatra?

Я могу успешно запустить мое приложение в режиме огурца, запустив cucumber через CLI из корневого каталога репозитория. Но ...

1) как запустить приложение в режиме разработки?

Это немного сложно, потому что это модульное приложение, и я переместил файл app.rb в lib/lovers/application.rb.

2) Как запустить его с помощью shotgun, чтобы он автоматически перезапустил приложение для каждого HTTP-запроса?

3) Когда вы запускаете ruby app.rb для приложения Sinatra, что это на самом деле?

Если вы ответите часть 3) ну, я думаю, что я буду в состоянии выяснить ответ на 1 & 2.

Спасибо!

+0

Установлен ли ваш config.ru в положение /lib/lovers/application.rb? просто «дробовик» в базовом каталоге должен работать, если это так. – minikomi

+0

Не полный ответ, но: я создаю файл 'config.ru', а затем запускаю' thin -R config.ru -e development' для обслуживания через Thin в любой среде, в которой я хочу. – Phrogz

ответ

5

1) Просто запустите bundle exec shotgun из проекта root. Штурмовик, в отличие от других серверов стойки, таких как тонкий, специально разработан ... фактически ... предназначен только для режима разработки, поскольку он перезагружает ваш код, если он изменяется.

2) Почему по каждому запросу? Shotgun автоматически перезагружается по мере необходимости.

3) ruby app.rb запускает небольшой сервер приложений (см. Здесь: http://www.sinatrarb.com/), но, вероятно, не то, что вы хотите. Дробовик должен сделать трюк.

Важная вещь, чтобы увидеть здесь config.ru в корневом каталоге loversapp. Вот что ищет дробовик и другие серверы стойки. Он загружает ваш lib/lovers/application.rb, устанавливает правильный RACK_ENV и звонит run Lovers::Application.

+0

'bundle exec shotgun' работал. Благодаря! – ma11hew28

+0

Работал как очарование, большое спасибо – Joseph

Смежные вопросы