lib/hem/tasks/assets.rb in hem-1.0.1.beta1 vs lib/hem/tasks/assets.rb in hem-1.0.1.beta2

- old
+ new

@@ -70,23 +70,37 @@ do_sync src, dst, env, "upload" end end desc "Apply project assets" + option "-a=", "--applicator=", "Asset applicator to apply, default all" option "-e=", "--env=", "Environment" + option "-f", "--force", "Force application of already applied assets" project_only task :apply do |task, args| env = task.opts[:env] || args[:env] || 'development' path = "tools/assets/#{env}" + opts = { + force: task.opts[:force] || args[:force] || false + } + applicator_name = task.opts[:applicator] || args[:applicator] + case applicator_name + when nil, 'all' + asset_applicators = Hem.asset_applicators + else + asset_applicators = Hem.asset_applicators.select do |applicator| + applicator.name == applicator_name + end + end + next unless File.exists? path Dir.new(path).each do |file| file = File.join(path, file) next unless File.file? file - Hem.asset_applicators.each do |matcher, proc| - proc.call(file) if matcher.match(file) + asset_applicators.each do |applicator| + applicator.call(file, opts) if applicator.matches?(file) end end - end end