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