2012-05-30 4 views
0

Windows Vista/7의 JRuby에서 Sinatra 프로젝트를 자동으로 다시로드하려고합니다. Sinatra-contrib에서 Sinatra :: Reloader를 사용하고 있습니다. 불행히도, 그것은 컨트롤러에서만 작동하는 것 같습니다. 모델 및 도우미에 대한 변경 사항은 다시로드되지 않습니다.Sinatra :: Reloader로 모델 및 도우미 다시로드

also_reload를 잘못 사용하고 있습니까?

여기 내 프로젝트가 모습입니다 같은 : /app.rb

require 'sinatra' 
require 'sinatra/reloader' 
require 'json' 

class App < Sinatra::Application 
    enable :sessions 
    enable :logging 
    register Sinatra::Reloader 
    also_reload "models/*.rb" 
    also_reload "helpers/*.rb" 

    helpers do 
    include Rack::Utils 
    alias_method :h, :escape_html 
    end 
end 

require_relative 'helpers/init' 
require_relative 'models/init' 
require_relative 'controllers/init' 

/controllers/init.rb

enable :sessions 

require_relative 'auth' 
require_relative 'customer' 
require_relative 'policy' 
require_relative 'forms' 

/helpers/init.rb

require_relative 'auth_helper' 
require_relative 'customer_helper' 
require_relative 'flash_helper' 
require_relative 'form_helper' 
require_relative 'policy_helper' 

/모델/init.rb

require 'lib/sqljdbc4.jar' 
require 'sequel' 
require 'logger' 

Java::com.microsoft.sqlserver.jdbc.SQLServerDriver 
url = 'foo' 

DB = Sequel.connect(url) 
DB.loggers << Logger.new($stdout) 

Sequel.inflections do |inflect| 
    inflect.clear :all 
end 

files = [ 
:customer, 
:customer_email, 
:phone_number ] 

files.each do |f| 
    require_relative f.to_s 
end 

답변

0

너의 현재 구현 하에서, helpers/auth_helper.rb에서 무엇인가를 변경한다고 가정 해 봅시다. 이 파일은 다시로드되지만 helpers/init.rb은 변경되지 않으므로 sinatra-reloader가 다시로드하지 않으며 변경 사항을 볼 수 없습니다. shotgun 보석을 사용해 봤니?

+0

나는 아마 내가 윈도우를 사용하고 있다고 언급 했어야했다. 포크가 없으므로 산탄 총은 작동하지 않습니다. – James

관련 문제