Sha256: ad3a2cee15cea49361b0de940ee3d272d171cc806c99c832286d5ed0e64ede28
Contents?: true
Size: 1.1 KB
Versions: 8
Compression:
Stored size: 1.1 KB
Contents
# encoding: UTF-8 require 'stringio' require 'erubis' require 'tilt' module Spontaneous module Rack class Reloader include Spontaneous::Rack::Helpers def initialize(app, *args) @app = app config = args.first || {} @cooldown = config[:cooldown] || 3 @last = (Time.now - @cooldown) end def call(env) if @cooldown and Time.now > @last + @cooldown if Thread.list.size > 1 Thread.exclusive{ reload! } else reload! end @last = Time.now end @app.call(env) rescue Spontaneous::SchemaModificationError => error template = Tilt::ErubisTemplate.new(File.expand_path('../../../../application/views/schema_modification_error.html.erb', __FILE__)) html = template.render(self, :modification => error.modification, :env => env) [412, {'Content-type' => ::Rack::Mime.mime_type('.html')}, StringIO.new(html)].tap do |response| end end def reload! Spontaneous.reload! end end # Reloader end # Rack end # Spontaneous
Version data entries
8 entries across 8 versions & 1 rubygems