class Translatomatic::Slurp
Class for slurping files
Public Class Methods
read(path)
click to toggle source
Slurp
a file, convert to UTF-8 @param path [String] Path to a file @return [String] file contents in UTF-8
# File lib/translatomatic/slurp.rb, line 8 def read(path) # read data data = File.read(path) encoding = detect_encoding(data) data.force_encoding(encoding) if encoding data.encode!(Encoding::UTF_8) data.gsub!(/\A\xEF\xBB\xBF/, '') # kill bom data end
Private Class Methods
detect_encoding(data)
click to toggle source
detect encoding using CharDet returns nil if unknown encoding
# File lib/translatomatic/slurp.rb, line 22 def detect_encoding(data) # detect encoding cd = CharDet.detect(data) encoding = cd['encoding'] confidence = cd['confidence'] Encoding.find(encoding) if encoding && confidence >= 0.5 end