lib/jekyll/watcher.rb in jekyll-watch-1.5.1 vs lib/jekyll/watcher.rb in jekyll-watch-2.0.0
- old
+ new
@@ -38,48 +38,50 @@
end
rescue ThreadError
# You pressed Ctrl-C, oh my!
end
- # TODO: shouldn't be public API
+ private
def build_listener(site, options)
Listen.to(
options["source"],
:ignore => listen_ignore_paths(options),
:force_polling => options["force_polling"],
&listen_handler(site)
)
end
+ private
def listen_handler(site)
proc do |modified, added, removed|
t = Time.now
c = modified + added + removed
n = c.length
- print Jekyll.logger.message("Regenerating:",
- "#{n} file(s) changed at #{t.strftime("%Y-%m-%d %H:%M:%S")} ")
- begin
- 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."
+ Jekyll.logger.info "Regenerating:",
+ "#{n} file(s) changed at #{t.strftime("%Y-%m-%d %H:%M:%S")}"
+
+ c.map { |path| path.sub("#{site.source}/", "") }.each do |file|
+ Jekyll.logger.info "", file
end
+
+ process(site, t)
end
end
+ private
def custom_excludes(options)
Array(options["exclude"]).map { |e| Jekyll.sanitized_path(options["source"], e) }
end
+ private
def config_files(options)
%w(yml yaml toml).map do |ext|
Jekyll.sanitized_path(options["source"], "_config.#{ext}")
end
end
+ private
def to_exclude(options)
[
config_files(options),
options["destination"],
custom_excludes(options),
@@ -89,10 +91,11 @@
# Paths to ignore for the watch option
#
# options - A Hash of options passed to the command
#
# Returns a list of relative paths from source that should be ignored
+ private
def listen_ignore_paths(options)
source = Pathname.new(options["source"]).expand_path
paths = to_exclude(options)
paths.map do |p|
@@ -109,10 +112,23 @@
# Could not find a relative path
end
end.compact + [%r!\.jekyll\-metadata!]
end
+ private
def sleep_forever
loop { sleep 1000 }
+ end
+
+ private
+ def process(site, time)
+ begin
+ site.process
+ Jekyll.logger.info "", "...done in #{Time.now - time} seconds."
+ rescue => e
+ Jekyll.logger.warn "Error:", e.message
+ Jekyll.logger.warn "Error:", "Run jekyll build --trace for more information."
+ end
+ puts ""
end
end
end