module Eightball
Public Instance Methods
eightball(replacement_string = '?')
click to toggle source
# File lib/eightball.rb, line 5 def eightball(replacement_string = '?') string = self string = string.force_encoding(Encoding::UTF_8) if not_utf8? string = reencode(string, replacement_string) string = drop_bom(string) string end
Private Instance Methods
drop_bom(string)
click to toggle source
# File lib/eightball.rb, line 25 def drop_bom(string) string.sub(/^\xEF\xBB\xBF/, '') end
not_utf8?()
click to toggle source
# File lib/eightball.rb, line 15 def not_utf8? !self.valid_encoding? || self.encoding != Encoding::UTF_8 end
reencode(string, replacement_string)
click to toggle source
# File lib/eightball.rb, line 19 def reencode(string, replacement_string) string = string.encode(Encoding::UTF_16, :invalid => :replace, :undef => :replace, :replace => replacement_string) string = string.encode(Encoding::UTF_8, :invalid => :replace, :undef => :replace, :replace => replacement_string) string end