namespace :assets do

desc 'Compile .coffee and .sass files in /public'
task :precompile do
  settings.assets_path.each do |path|
    copy_directory("./#{path}", "./public/#{path}") unless path == 'public'
  end
  Dir.glob("./public/**/*.coffee").each do |asset|
    File.open(asset.gsub('.coffee', '.js'), 'w') do |f|
      f.write(JSMin.minify(CoffeeScript.compile(File.read(asset), bare: Tilt::CoffeeScriptTemplate.default_bare)).strip)
    end
  end
  Dir.glob("./public/**/*.scss").each do |asset|
    File.open(asset.gsub('.scss', '.css'), 'w') do |f|
      f.write(Sass::Engine.for_file(asset, { style: :compressed }).render)
    end
  end
  settings.assets_path.each do |path|
    unless path == 'public'
      Dir.glob("./public/#{path}/**/*.{coffee,scss}").each do |asset|
        File.delete(asset)
      end
    end
  end
end

desc 'Remove compiled assets'
task :decompile do
  settings.assets_path.each do |path|
    FileUtils.rm_rf("./public/#{path}") unless path == 'public'
  end
  Dir.glob("./public/**/*.coffee").each do |asset|
    File.delete(asset.gsub('.coffee', '.js')) if File.exists?(asset.gsub('.coffee', '.js'))
  end
  Dir.glob("./public/**/*.scss").each do |asset|
    File.delete(asset.gsub('.scss', '.css')) if File.exists?(asset.gsub('.scss', '.css'))
  end
end

end