Skip to content

Instantly share code, notes, and snippets.

@thermistor
Forked from shedd/assets.rake
Created October 20, 2011 13:55
Show Gist options
  • Star 18 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save thermistor/1301199 to your computer and use it in GitHub Desktop.
Save thermistor/1301199 to your computer and use it in GitHub Desktop.
Check asset encoding for valid UTF-8
namespace :assets do
desc "Check that all assets have valid encoding"
task :check => :environment do
paths = ["app/assets", "lib/assets", "vendor/assets"]
extensions = ["js", "coffee", "css", "scss"]
paths.each do |path|
dir_path = Rails.root + path
if File.exists?(dir_path)
dir_files = File.join(dir_path, "**")
Dir.glob(dir_files + "/**.{#{extensions.join(',')}}").each do |file|
# make sure we're not trying to process a directory
unless File.directory?(file)
# read the file and check its encoding
data = File.read(file)
unless data.valid_encoding?
puts "Invalid encoding: #{ file }"
end
end
end # end Dir.glob
end #end File.exists
end # end paths.each
end
end
@caike
Copy link

caike commented Jun 14, 2013

Thanks!

For the record, after using this rake task to track the files that were not UTF-8, I was able to convert them using recode, as recommended here http://stackoverflow.com/questions/64860/best-way-to-convert-text-files-between-character-sets

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment