lib/reality/zapwhite.rb in zapwhite-2.7.0 vs lib/reality/zapwhite.rb in zapwhite-2.8.0
- old
+ new
@@ -70,24 +70,26 @@
collect_file_attributes(files)
files.each_pair do |filename, config|
full_filename = "#{@base_directory}/#{filename}"
- content = File.read(full_filename)
+ original_bin_content = File.binread(full_filename)
- content = patch_encoding(content) unless config[:encoding]
- original_content = content.dup
+ encoding = config[:encoding].nil? ? 'utf-8' : config[:encoding].gsub(/^UTF/,'utf-')
+
+ content = File.read(full_filename, :encoding => "bom|#{encoding}")
+
content =
config[:dos] ?
clean_dos_whitespace(filename, content, config[:eofnl]) :
clean_whitespace(filename, content, config[:eofnl])
if config[:nodupnl]
while content.gsub!(/\n\n\n/, "\n\n")
# Keep removing duplicate new lines till they have gone
end
end
- if content != original_content
+ if content.bytes != original_bin_content.bytes
normalize_count += 1
if check_only?
puts "Non-normalized whitespace in #{filename}"
else
puts "Fixing: #{filename}"
@@ -175,19 +177,10 @@
puts "Skipping dos whitespace cleanup: #{filename}"
end
content
end
- def patch_encoding(content)
- content =
- content.respond_to?(:encode!) ?
- content.encode!('UTF-8', 'binary', :invalid => :replace, :undef => :replace, :replace => '') :
- content
- content.gsub!(/^\xEF\xBB\xBF/, '')
- content
- end
-
# Evaluate block after changing directory to specified directory
def in_dir(dir, &block)
original_dir = Dir.pwd
begin
Dir.chdir(dir)
@@ -226,10 +219,10 @@
attributes.text_rule('*.md')
attributes.text_rule('*.textile')
attributes.text_rule('*.rdoc')
attributes.text_rule('*.html')
attributes.text_rule('*.xhtml')
- attributes.text_rule('*.css', :encoding => 'UTF8')
+ attributes.text_rule('*.css')
attributes.text_rule('*.js')
attributes.binary_rule('*.jpg')
attributes.binary_rule('*.jpeg')
attributes.binary_rule('*.png')
attributes.binary_rule('*.bmp')