class Yarrow::Server::Livereload::Reactor
Public Class Methods
new()
click to toggle source
# File lib/yarrow/server/livereload.rb, line 11 def initialize @sockets = [] @running = false end
Public Instance Methods
refresh_payload(path)
click to toggle source
# File lib/yarrow/server/livereload.rb, line 33 def refresh_payload(path) data = JSON.dump(['refresh', { :path => path, :apply_js_live => false, :apply_css_live => false }]) end
run_loop()
click to toggle source
# File lib/yarrow/server/livereload.rb, line 49 def run_loop EventMachine.run do logger.info 'Starting Livereload reactor on port: 35729' EventMachine::WebSocket.start(:host => 'localhost', :port => 35729) do |socket| socket.onopen do socket.send "!!ver:1.6" @sockets << socket logger.info 'Livereload connected' end socket.onmessage do |message| logger.info "Receiving message: #{message}" end socket.onclose do @sockets.delete(socket) logger.info 'Livereload disconnected' end end end end
running?()
click to toggle source
# File lib/yarrow/server/livereload.rb, line 16 def running? @running end
send_refresh()
click to toggle source
# File lib/yarrow/server/livereload.rb, line 41 def send_refresh @updated_paths.each do |path| @sockets.each do |ws| ws.send(refresh_payload(path)) end end end
start()
click to toggle source
# File lib/yarrow/server/livereload.rb, line 20 def start @thread = Thread.new do run_loop end @running = true end
stop()
click to toggle source
# File lib/yarrow/server/livereload.rb, line 27 def stop logger.info 'Shutting down Livereload' @thread.kill @running = false end