class GfmLivePreview::Server
Public Instance Methods
render_document(ws, relative_path)
click to toggle source
# File lib/gfm_live_preview/server.rb, line 17 def render_document(ws, relative_path) document = GfmLivePreview.read_file relative_path syntax_highlight! document doc = GitHub::Markdown.render_gfm document EM.next_tick { ws.send doc } end
setup_websockets(request, relative_path = nil)
click to toggle source
# File lib/gfm_live_preview/server.rb, line 24 def setup_websockets(request, relative_path = nil) request.websocket do |ws| ws.onopen do render_document ws, relative_path listener = Listen.to GfmLivePreview.root do render_document ws, relative_path end listener.start settings.sockets << ws end ws.onclose do settings.sockets.delete ws end end end
syntax_highlight!(str)
click to toggle source
# File lib/gfm_live_preview/server.rb, line 8 def syntax_highlight! str SyntaxHighlighter.highlight! str do |string, hexcolor| "<span style=\"color:##{hexcolor}\">#{string}</span>" end rescue => e puts "Exception during syntax highlighting: #{e}" e.backtrace.each do |line| puts line; end end