Sha256: ac5a1513ba87279f649933ec5202bf28b8b7765921d64dca4cfe1d99e4dc5201
Contents?: true
Size: 1.23 KB
Versions: 2
Compression:
Stored size: 1.23 KB
Contents
require 'iconv' String.class_eval do def set_encoding_and_add_bom encoding_to set_encoding(encoding_to).add_bom end def set_encoding_and_add_bom! encoding_to replace set_encoding_and_add_bom encoding_to end def add_bom raise_if_encoding_does_not_exist encoding BOM_LIST_hex[encoding].force_encoding(encoding) + self end def add_bom! replace add_bom end def set_encoding(encoding_to) raise_if_encoding_does_not_exist encoding_to Iconv.conv encoding_to, encoding.to_s, self end def set_encoding! encoding_to replace set_encoding encoding_to end private # Byte Order Mark BOM_LIST_hex = { Encoding::UTF_8 => "\xEF\xBB\xBF", Encoding::UTF_16BE => "\xFE\xFF", Encoding::UTF_16LE => "\xFF\xFE", Encoding::UTF_32BE => "\x00\x00\xFE\xFF", Encoding::UTF_32LE => "\xFE\xFF\x00\x00", } BOM_LIST_hex.freeze def encoding_exist? coding !BOM_LIST_hex[encoding_creater coding].nil? end def raise_if_encoding_does_not_exist *encoding_array encoding_array.each do |coding| raise ArgumentError, "Encoding does not exist for #{coding}" unless encoding_exist? coding end end def encoding_creater coding Encoding.find coding end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
encoding_with_bom-0.0.6 | lib/encoding_with_bom/string_ext.rb |
encoding_with_bom-0.0.5 | lib/encoding_with_bom/string_ext.rb |