2016-07-13 2 views
0

나는 sinatra가 어떻게 작동 하는지를 조사하려고 노력해 왔으며, 가장 최근에는 sinatra가 파일을 처리 할 때 sinatra가 서버를 시작하는 방법을 알아 내려고 노력했다. 나는 this tutorial보고 있었다 그들은 (시나의 자신의 버전 낸시라고합니다)이처럼 보이는 예제 응용 프로그램과 함께 종료 :sinatra가 서버를 어떻게 시작합니까?

# app.rb 
# run with `ruby app.rb` 
require "./nancy" 

get "/" do 
    "Hey there!" 
end 

Rack::Handler::WEBrick.run Nancy::Application, Port: 9292 

난 당신이시나의 마지막 줄을 포함하도록 강요하지 않는 방법을 궁금해하고있다.

답변

-2

sinatra 응용 프로그램을 제공하려면 셸에서 ruby app.rb을 실행하기 만하면됩니다.

그런 app.rb

# install sinatra gem before everything 
# by typing `gem install sinatra` 
# on shell. or add sinatra to your Gemfile 
# then execute bundle install 

require 'sinatra' 

get '/' do 
    "Hey there" 
end 

당신은 당신이에 호소했습니다 튜토리얼은 실제 sinatra에 대해하지 않습니다 같은 출력

$ ruby app.rb 
Puma 2.11.3 starting... 
* Min threads: 0, max threads: 16 
* Environment: development 
* Listening on tcp://localhost:4567 
== Sinatra (v1.4.7) has taken the stage on 4567 for development with backup from Puma 

를 볼 수 있습니다 - 구축이 작가 자신의/그녀 자신의 가짜 sinatra. 그런데 루비는 마이크로 프레임 워크를 가지고있다. nancy

의사 sinatra를 성공적으로 실행하려면, 처음부터 끝까지 튜토리얼을 따라야한다.

+0

질문에 대답하지 않습니다. 시네 트라는 어떻게 webrick을 시작합니까? – thesecretmaster

+0

코드를 검사 : https://github.com/sinatra/sinatra/blob/v1.4.7/lib/sinatra/main.rb#L25 https://github.com/sinatra/sinatra/blob /v1.4.7/lib/sinatra/base.rb#L1959 – marmeladze

+0

나는 보았다. 그러나 couldnt하는 것은 그것을 해석했다. 그래서 나는 묻는다. – thesecretmaster

1

시나는 at_exit 콜백을 정의하여, 이것은 기본적으로 말한다 main.rb

를 참조 않습니다 "루비 스크립트가 수행하고 종료는 다음시나 응용 프로그램을 실행할 때!"

자세한 내용은 ruby docs for at_exit을 참조하십시오!

관련 문제