lib/smallcage/commands/update.rb in smallcage-0.2.7 vs lib/smallcage/commands/update.rb in smallcage-0.2.8

- old
+ new

@@ -45,12 +45,18 @@ end end private :expire_old_files def render_smc_files - @loader.each_smc_obj do |obj| - render_smc_obj(obj) + if @opts[:fast] + @loader.each_smc_obj_using_target_template(@list) do |obj| + render_smc_obj(obj) + end + else + @loader.each_smc_obj do |obj| + render_smc_obj(obj) + end end end private :render_smc_files def render_smc_obj(obj) @@ -65,24 +71,25 @@ def render_single(obj, mtime = nil) mark = obj['path'].exist? ? 'U ' : 'A ' mtime ||= obj['path'].smc.stat.mtime.to_i - if @opts[:fast] + # Do not skip if the target is file. + if @opts[:fast] && @loader.dir_target && !@loader.target_template last_mtime = @list.mtime(obj['uri'].smc) if mtime == last_mtime - @list.update(obj['uri'].smc, mtime, String.new(obj['uri'])) + @list.update(obj['uri'].smc, mtime, String.new(obj['uri']), obj['template']) return end end result = @renderer.render(obj['template'], obj) result = after_rendering_filters(obj, result) output_result(obj, result) puts mark + obj['uri'] unless @opts[:quiet] # create new uri String to remove smc instance-specific method. - @list.update(obj['uri'].smc, mtime, String.new(obj['uri'])) + @list.update(obj['uri'].smc, mtime, String.new(obj['uri']), obj['template']) end private :render_single def render_multi(obj, uris) obj['uris'] ||= uris