Fix dynamic multi-byte utf-8 files rebuilding.

Thor compares the new contents with the existing file by using
File.binread(destination) == new_content.
File.binread returns a string with ASCII_8BIT encoding, which will not
match the new_content if new_content contains multi-byte utf-8.

This patch simply encodes the new_content to ASCII_8BIT before passing
it to Thor.
This commit is contained in:
Kevin McCarthy 2013-03-03 18:13:41 -08:00
parent de955aa0c3
commit 7608275089
3 changed files with 35 additions and 1 deletions

View file

@ -0,0 +1,13 @@
Feature: Unicode filecontents
In order to support non-ASCII characters in file contents
Scenario: Rebuild with files containing unicode characters in their name
Given a fixture app "clean-app"
And a file named "source/index.html.erb" with:
"""
"""
And a successfully built app at "clean-app"
And a modification time for a file named "build/index.html"
And a successfully built app at "clean-app"
Then the file "build/index.html" should not have been updated