Module: ID3Tag::EncodingUtil
- Defined in:
- lib/id3tag/encoding_util.rb
Constant Summary collapse
- UnsupportedTextEncoding =
Class.new(StandardError)
- UnsupportedEncoding =
Class.new(StandardError)
- DESTINATION_ENCODING =
Encoding::UTF_8.to_s
- ENCODING_MAP =
{ 0b0 => Encoding::ISO8859_1, 0b1 => Encoding::UTF_16, 0b10 => Encoding::UTF_16BE, 0b11 => Encoding::UTF_8 }
- TERMINATOR_MAP =
{ 0b0 => 1, 0b1 => 2, 0b10 => 2, 0b11 => 1 }
Class Method Summary collapse
- .encode(text, source_encoding) ⇒ Object
- .find_encoding(byte) ⇒ Object
- .terminator_size(byte) ⇒ Object
Class Method Details
.encode(text, source_encoding) ⇒ Object
29 30 31 |
# File 'lib/id3tag/encoding_util.rb', line 29 def self.encode(text, source_encoding) text.encode(DESTINATION_ENCODING, source_encoding, **ID3Tag.configuration.) end |
.find_encoding(byte) ⇒ Object
21 22 23 |
# File 'lib/id3tag/encoding_util.rb', line 21 def self.find_encoding(byte) ENCODING_MAP.fetch(byte) { raise UnsupportedTextEncoding }.to_s end |
.terminator_size(byte) ⇒ Object
25 26 27 |
# File 'lib/id3tag/encoding_util.rb', line 25 def self.terminator_size(byte) TERMINATOR_MAP.fetch(byte) { raise UnsupportedEncoding.new("Can not find terminator for encoding byte: #{byte.inspect}") } end |