ΠΠΎΠ³Π΄Π° Ρ Π·Π°ΠΏΡΡΠΊΠ°Π» Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ sinatra, ΠΌΠ½Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ Π΄Π²Π°ΠΆΠ΄Ρ Π½Π°ΠΆΠ°ΡΡ CTRL + C, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΠ»ΠΎΡΡ.
== Sinatra / 1.0.b Π²ΡΡΠ»Π° Π½Π° ΡΡΠ΅Π½Ρ Π½Π° 4567 Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Ρ Π±ΡΠΊΠ°ΠΏΠΎΠΌ ΠΎΡ Thin >> Π’ΠΎΠ½ΠΊΠΈΠΉ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ (ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ v1.2.7 No Hup) >> ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π½Π° 1024 >> ΠΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π½ΠΈΠ΅ 0.0.0.0:4567, CTRL + C Π΄Π»Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ^ C >> ΠΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ... == Π‘ΠΈΠ½Π°ΡΡΠ° Π·Π°ΠΊΠΎΠ½ΡΠΈΠ» ΡΠ²ΠΎΠΉ ΡΠ΅Ρ (ΡΠΎΠ»ΠΏΠ° Π°ΠΏΠ»ΠΎΠ΄ΠΈΡΡΠ΅Ρ) == Sinatra / 1.0.b Π²ΡΡΠ»Π° Π½Π° ΡΡΠ΅Π½Ρ Π½Π° 4567 Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Ρ Π±ΡΠΊΠ°ΠΏΠΎΠΌ ΠΎΡ Thin >> Π’ΠΎΠ½ΠΊΠΈΠΉ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ (ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ v1.2.7 No Hup) >> ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π½Π° 1024 >> ΠΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π½ΠΈΠ΅ 0.0.0.0:4567, CTRL + C Π΄Π»Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ^ C >> ΠΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ... == Π‘ΠΈΠ½Π°ΡΡΠ° Π·Π°ΠΊΠΎΠ½ΡΠΈΠ» ΡΠ²ΠΎΠΉ ΡΠ΅Ρ (ΡΠΎΠ»ΠΏΠ° Π°ΠΏΠ»ΠΎΠ΄ΠΈΡΡΠ΅Ρ)
Π― ΡΠ΅ΠΉΡΠ°Ρ Π±Π΅Π³Π°Ρ:
ΡΠ±ΡΠ½ΡΡ 9.10 (ΠΊΠ°ΡΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ)
rubygems 1.3.6
ruby 1.9.1p376 (Π²Π΅ΡΡΠΈΡ 26041 ΠΎΡ 07.12.2009) [i486-linux]
sinatra 1.0.b
ΡΠΎΠ½ΠΊΠΈΠΉ 1.2.7
Π£ ΠΌΠ΅Π½Ρ ΡΠ»ΡΡΠ°Π΅ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΡΠΈΠ»Π΅ ΠΊΠ»Π°ΡΡΠ° Ρ Application.run
Π² config.ru.
Π Π°Π½ΡΡΠ΅ ΡΠΎ ΠΌΠ½ΠΎΠΉ ΡΠ°ΠΊΠΎΠ΅ ΡΠ»ΡΡΠ°Π»ΠΎΡΡ ΠΏΡΠΈ Cygwin. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈ ΠΊ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΠ»Π° ΡΡΠΎΠΉΠΊΠΈ. Π§ΡΠΎ Ρ Π΄Π΅Π»Π°Ρ:
yourapp.rb
ΠΊΠ»Π°ΡΡ App < Sinatra: Base
whatev ..
ΠΊΠΎΠ½Π΅Ρ
config.ru
ΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ ΡΡΠ±ΠΈΠ½ΠΎΠ²ΡΠ΅ ΠΊΠ°ΠΌΠ½ΠΈ
ΡΡΠ΅Π±ΡΠ΅ΡΡΡ 'yourapp.rb'
Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ:
rackup -s thin config.ru
ΠΠ° 1.0 Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π½Π΅ ΡΠΌΠΎΠ³. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ ΠΈΡΡΠ΅Π·Π»Π°. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ
Π― ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠΎΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΡΡ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ, Π½ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ:
require 'sinatra'
class MyServer < Sinatra::Base
get '/test' do
'Hello world!'
end
run! if app_file == $0
end
Π― ΡΠ°Π±ΠΎΡΠ°Ρ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ Ρ ruby my_server.rb
. ΠΡΠ»ΠΈ Ρ ΡΠ΄Π°Π»Ρ ΡΡΡΠΎΠΊΡ run
, Π΄Π»Ρ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ctrl + c, Π½ΠΎ ΠΊΠΎΠ½Π΅ΡΠ½Π°Ρ ΡΠΎΡΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½Π°, Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠ°:
[28 / May / 2016: 20:37: 15 +0100] Β«GET / test HTTP / 1.1Β» 404 466 0,0005
ΠΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π» sinatra
Π²ΠΌΠ΅ΡΡΠΎ sinatra/base
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π»
sinatra
Π²ΠΌΠ΅ΡΡΠΎsinatra/base