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

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.string_encode_options)
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