Sha256: ce82021149382cca7967ad5f93fcdf7f74291895e174553eb9a30b774e5610dc
Contents?: true
Size: 1.31 KB
Versions: 2
Compression:
Stored size: 1.31 KB
Contents
# encoding: utf-8 require_relative 'previewer/web_app' require_relative 'previewer/web_server' require_relative 'previewer/file_listener' module Devcenter::Previewer extend self def preview(slug, md_path, host, port) Runner.new(slug, md_path, host, port).run end class Runner attr_reader :slug, :md_path, :host, :port, :url def initialize(slug, md_path, host, port) @slug = slug @md_path = md_path @host = host @port = port @url = "http://#{@host}:#{@port}/#{@slug}" @listener = init_listener @server = init_server end def run start @running = true [:INT, :TERM].each do |signal| trap(signal) do stop exit end end sleep 1 while running? end private def running? @running end def init_server WebServer.new(host, port, WebApp) end def init_listener FileListener.new(md_path) end def start @server.start @listener.start say "\nLive preview for #{slug} available in #{url}" say "It will refresh when you save #{md_path}" say "Press Ctrl+C to exit...\n" Launchy.open(url) end def stop @server.stop @listener.stop say "\nPreview finished." @running = false end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
devcenter-1.3.0 | lib/devcenter/previewer.rb |
devcenter-1.2.0 | lib/devcenter/previewer.rb |