2012-11-13 3 views
2

안녕하세요Sinatra Reloader를 사용하는 모듈러 시나트라 앱?

require 'sinatra' 
require "sinatra/reloader" 

class MyApp < Sinatra::Base 
    configure do 
    require "./rest/auth.rb" 
    register Sinatra::Reloader 
    also_reload '/rest/auth' 
    end 

    get '/' do 
    erb :home 
    end 
end 

다음 코드를 '주'시나 파일을 가지고 내가 /rest/auth.rb의 내부에 내 인증 로직을 넣어 원한다면, 내가/휴식/인증을 얻을 수있는 방법. rb를 개발 모드로 다시로드 하시겠습니까? configure 블록을 넣고 컨트롤러 파일마다 sinatra/reloader가 필요합니까? 내 컨트롤러가 내 메인 클래스의 설정을 상속 받길 원합니다. 나의 변화가 일어날하지만 난에 좋아하지 않을지라도 내가 auth.rb의 구성 블록이 다시로드 코드를 던질 수에 대한

class MyApp < Sinatra::Base 
    set(:auth) do |*roles| # <- notice the splat here 
    condition do 
     unless logged_in? 
     session[:success_url] = request.path_info 
     redirect '/' 
     end 
    end 
    end 

    def logged_in? 
    current_user 
    end 

    def current_user 
    if session[:user_id] 
     u = User.find(:id=>"#{session[:user_id]}") 
    else 
     false 
    end 
    end 
end 

나는 서버를 다시 시작해야 다음과 같이 auth.rb의 내부의 코드는 . 어떤 아이디어?

답변

9

봅니다 ... U 사람이

require 'sinatra/base' 
require "sinatra/reloader" 

class MyApp < Sinatra::Base 

    configure :development do 
    register Sinatra::Reloader 
    also_reload './rest/auth' 
    end 

    require "./rest/auth.rb" 


    get '/' do 
    erb :home 
    end 

end 
+0

감사처럼 다시 작성합니다 :) – jdkealy

관련 문제