mirror of
https://github.com/sinatra/sinatra
synced 2023-03-27 23:18:01 -04:00
explain run! vs config.ru in russian README
This commit is contained in:
parent
d9f62bae01
commit
390e3a0b7a
1 changed files with 60 additions and 9 deletions
|
@ -94,7 +94,7 @@ Sinatra — это предметно-ориентированный язык (D
|
|||
end
|
||||
|
||||
get '/foo' do
|
||||
# соответствует с non-songbird браузерам
|
||||
# соответствует non-songbird браузерам
|
||||
end
|
||||
|
||||
Другими доступными условиями являются +host_name+ и +provides+:
|
||||
|
@ -833,7 +833,7 @@ Rack распространяется с различными стандартн
|
|||
Заметьте: Встроенные модули Sinatra::Test и Sinatra::TestHarness являются
|
||||
устаревшими, начиная с 0.9.2 релиза.
|
||||
|
||||
== Sinatra::Base - Подпрограммы, библиотеки и модульные приложения
|
||||
== Sinatra::Base — подпрограммы, библиотеки и модульные приложения
|
||||
|
||||
Описание своего приложения самым простейшим способом (с помощью DSL верхнего уровня, как в примерах выше)
|
||||
работает отлично для крохотных приложений, но имеет множество недостатков, когда надо
|
||||
|
@ -856,13 +856,6 @@ DSL верхнего уровня загрязняет пространство
|
|||
end
|
||||
end
|
||||
|
||||
MyApp класс является независимым Rack компонентом, который может исполнять роли
|
||||
Rack подпрограммы, Rack приложения, Rails metal. Вы можете +use+ (использовать) или
|
||||
+run+ (запустить) этот класс из rackup файла +config.ru+; или контролировать серверную
|
||||
часть из библиотеки:
|
||||
|
||||
MyApp.run! :host => 'localhost', :port => 9090
|
||||
|
||||
Методы, доступные Sinatra::Base сабклассам идентичны тем, что доступны
|
||||
в DSL верхнего уровня. Большинство приложений верхнего уровня могут быть
|
||||
конвертированы в Sinatra::Base компоненты с помощью двух модификаций:
|
||||
|
@ -875,6 +868,64 @@ Rack подпрограммы, Rack приложения, Rails metal. Вы мо
|
|||
Смотрите {Опции и Конфигурация}[http://www.sinatrarb.com/configuration.html] для детальной информации
|
||||
об опциях и их поведении.
|
||||
|
||||
=== Запуск модульных приложений
|
||||
|
||||
Есть два общепринятых способа запускать модульные приложения: запуск напрямую с помощью <tt>run!</tt>:
|
||||
|
||||
# my_app.rb
|
||||
require 'sinatra/base'
|
||||
|
||||
class MyApp < Sinatra::Base
|
||||
# ... здесь код приложения ...
|
||||
|
||||
# запускаем сервер, если исполняется текущий файл
|
||||
run! if app_file == $0
|
||||
end
|
||||
|
||||
И запускаем с помощью:
|
||||
|
||||
ruby my_app.rb
|
||||
|
||||
Или с помощью конфигурационного файла <tt>config.ru</tt>, который позволяет использовать любой
|
||||
Rack-совместимый сервер приложений.
|
||||
|
||||
# config.ru
|
||||
require 'my_app'
|
||||
run MyApp
|
||||
|
||||
Запускаем:
|
||||
|
||||
rackup -p 4567
|
||||
|
||||
=== Запуск "классических" приложений с config.ru
|
||||
|
||||
Файл приложения:
|
||||
|
||||
# app.rb
|
||||
require 'sinatra'
|
||||
|
||||
get '/' do
|
||||
'Hello world!'
|
||||
end
|
||||
|
||||
И соответствующий <tt>config.ru</tt>:
|
||||
|
||||
require 'app'
|
||||
run Sinatra::Application
|
||||
|
||||
=== Когда использовать config.ru?
|
||||
|
||||
Вот несколько причин, по которым вы, возможно, захотите использовать <tt>config.ru</tt>:
|
||||
|
||||
* вы хотите разворачивать свое приложение на различных Rack-совместимых серверах (Passenger, Unicorn,
|
||||
Heroku, ...).
|
||||
* вы хотите использовать более одного сабкласса <tt>Sinatra::Base</tt>.
|
||||
* вы хотите использовать Sinatra только в качестве подпрограммы Rack.
|
||||
|
||||
<b>Совсем необязательно переходить на использование <tt>config.ru</tt> лишь потому, что вы стали
|
||||
использовать модульный стиль приложения. И необязательно использовать модульный стиль, чтобы
|
||||
запускать приложение с помощью <tt>config.ru</tt>.</b>
|
||||
|
||||
=== Использование Sinatra как подпрограммы
|
||||
|
||||
Не только сама Sinatra может использовать подпрограммы Rack, любое Sinatra приложение
|
||||
|
|
Loading…
Add table
Reference in a new issue