-
-
Save thermistor/1301199 to your computer and use it in GitHub Desktop.
Check asset encoding for valid UTF-8
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
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
Does anyone know how I could update this task so that it also checks included gems assets?