Method: Multibases::Base2#decode

Defined in:
lib/multibases/base2.rb

#decode(encoded) ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/multibases/base2.rb', line 61

def decode(encoded)
  return DecodedByteArray::EMPTY if encoded.empty?

  unless encoded.is_a?(Array)
    encoded = encoded.force_encoding(@table.encoding).bytes
  end

  unless decodable?(encoded)
    raise ArgumentError, "'#{encoded}' contains unknown characters'"
  end

  unless default?
    encoded = ByteArray.new(encoded).transcode(
      table_ords,
      Default.table_ords(force_strict: @table.strict?),
      encoding: Encoding::US_ASCII
    )
  end

  Multibases::Base2.decode(encoded)
end