module Roda::RodaPlugins::LiveReload::RequestMethods
Public Instance Methods
live_reload(opts = {}, &block)
click to toggle source
Setup the live reload endpoint
# File lib/roda/plugins/live_reload.rb, line 73 def live_reload(opts = {}, &block) on("_live_reload") do logger.info "Live Reload listener attached" if logger reader, writer = IO.pipe LiveReload.synchronize do LiveReload.listeners.push(writer) end # I wish Rack would provide a shutdown indicator trap(:INT) { exit } scope.stream(loop: true) do |out| if IO.select([reader], nil, nil, 1) out.close else out << 0 end end LiveReload.synchronize do LiveReload.listeners.delete(writer) end end end