class Multibases::Base64::Table

Public Class Methods

from(alphabet, **opts) click to toggle source
# File lib/multibases/base64.rb, line 35
def self.from(alphabet, **opts)
  alphabet = alphabet.bytes if alphabet.respond_to?(:bytes)
  alphabet.map!(&:ord)

  new(alphabet, **opts)
end
new(ords, **opts) click to toggle source
Calls superclass method
# File lib/multibases/base64.rb, line 42
def initialize(ords, **opts)
  ords = ords.uniq

  if ords.length < 64 || ords.length > 65
    raise ArgumentError,
          'Expected alphabet to contain 64 characters or 65 + 1 ' \
          "padding character. Actual: #{ords.length} characters"
  end

  padder = nil
  *ords, padder = ords if ords.length == 65

  super(ords, padder: padder, **opts)
end