module Jekyll::Watcher
Public Instance Methods
listen_handler(site)
click to toggle source
# File lib/patches/jekyll_watcher.rb, line 30 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
watch(options, site = nil)
click to toggle source
Returns nothing.
# File lib/patches/jekyll_watcher.rb, line 8 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
Private Instance Methods
print_clear_line()
click to toggle source
# File lib/patches/jekyll_watcher.rb, line 55 def print_clear_line Jekyll.logger.info "" end
process(site, time)
click to toggle source
# File lib/patches/jekyll_watcher.rb, line 45 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