Sha256: 06ff89d2e43f6b8ae16df57d50f687bc4c398749d8a1b735fcbc0a818ef8f43c
Contents?: true
Size: 1.52 KB
Versions: 1
Compression:
Stored size: 1.52 KB
Contents
require "listen" module Jekyll module Watcher extend self # Returns nothing. def watch(options, site = nil) ENV["LISTEN_GEM_DEBUGGING"] ||= "1" if options["verbose"] site ||= Jekyll::Site.new(options) listener = build_listener(site, options) listener.start Jekyll.logger.info "Auto-regeneration:", "#{"enabled".green} for #{options["source"]}" unless options["serving"] trap("INT") do listener.stop puts " Halting auto-regeneration." exit 0 end sleep_forever end rescue ThreadError # You pressed Ctrl-C, oh my! end def listen_handler(site) proc do |modified, added, removed| t = Time.now c = modified + added + removed n = c.length Jekyll.logger.info("Regenerating:", "#{n} file(s) changed at #{t.strftime("%Y-%m-%d %H:%M:%S")} ") relative_paths = c.map { |p| site.in_source_dir(p) } relative_paths.each { |file| Jekyll.logger.info "", file.cyan } process site, t end end private def process(site, time) site.process Jekyll.logger.info "", "...done in #{Time.now - time} seconds.".green print_clear_line rescue => e Jekyll.logger.warn "Error:", e.message Jekyll.logger.warn "Error:", "Run jekyll build --trace for more information." print_clear_line end def print_clear_line Jekyll.logger.info "" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
jekyll-plus-0.2.0 | lib/patches/jekyll_watcher.rb |