lib/jekyll/watcher.rb in jekyll-watch-1.2.0 vs lib/jekyll/watcher.rb in jekyll-watch-1.2.1
- old
+ new
@@ -1,11 +1,12 @@
module Jekyll
module Watcher
extend self
def watch(options)
- listener = build_listener(options)
+ site = Jekyll::Site.new(options)
+ listener = build_listener(site, options)
listener.start
Jekyll.logger.info "Auto-regeneration:", "enabled for '#{options['source']}'"
unless options['serving']
@@ -19,28 +20,28 @@
end
rescue ThreadError => e
# You pressed Ctrl-C, oh my!
end
- def build_listener(options)
+ def build_listener(site, options)
require 'listen'
Listen.to(
options['source'],
:ignore => listen_ignore_paths(options),
:force_polling => options['force_polling'],
- &(listen_handler(options))
+ &(listen_handler(site))
)
end
- def listen_handler(options)
+ def listen_handler(site)
proc { |modified, added, removed|
- t = Time.now.strftime("%Y-%m-%d %H:%M:%S")
+ t = Time.now
c = modified + added + removed
n = c.length
- print Jekyll.logger.message("Regenerating:", "#{n} files at #{t} ")
+ print Jekyll.logger.message("Regenerating:", "#{n} file(s) changed at #{t.strftime("%Y-%m-%d %H:%M:%S")} ")
begin
- Jekyll::Command.process_site(Jekyll::Site.new(options))
- puts "...done."
+ site.process
+ puts "...done in #{Time.now - t} seconds."
rescue => e
puts "...error:"
Jekyll.logger.warn "Error:", e.message
Jekyll.logger.warn "Error:", "Run jekyll build --trace for more information."
end