Always treat formula files as UTF-8

This commit is contained in:
Jack Nagel 2015-06-06 18:10:47 -04:00
parent 18bb32a04d
commit 7d8bec3f20

View File

@ -17,7 +17,8 @@ class Formulary
def self.load_formula(name, path)
mod = Module.new
const_set("FormulaNamespace#{Digest::MD5.hexdigest(path.to_s)}", mod)
mod.module_eval(path.read, path)
contents = path.open("r") { |f| set_encoding(f).read }
mod.module_eval(contents, path)
class_name = class_s(name)
begin
@ -29,6 +30,16 @@ class Formulary
end
end
if IO.method_defined?(:set_encoding)
def self.set_encoding(io)
io.set_encoding(Encoding::UTF_8)
end
else
def self.set_encoding(io)
io
end
end
def self.class_s name
class_name = name.capitalize
class_name.gsub!(/[-_.\s]([a-zA-Z0-9])/) { $1.upcase }