Class: Base32::Variant

Inherits:
Object
  • Object
show all
Defined in:
lib/base32/variant.rb,
lib/base32/variant/plain.rb,
lib/base32/variant/zbase32.rb,
lib/base32/variant/crockford.rb

Direct Known Subclasses

Crockford, Plain, ZBase32

Defined Under Namespace

Classes: Crockford, Plain, ZBase32

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.[](variant_name) ⇒ Object



24
25
26
27
28
29
30
31
# File 'lib/base32/variant.rb', line 24

def self.[](variant_name)
  @variants ||= {}

  @variants[variant_name] ||= (
    require "base32/variant/#{variant_name}"
    self.constants.map{ |k| self.const_get(k) }.find{ |k| k.shortname == variant_name }.new
  )
end

.shortnameObject



20
21
22
# File 'lib/base32/variant.rb', line 20

def self.shortname
  self.name.split('::').last.downcase.intern
end

Instance Method Details

#alphabetObject



3
4
5
# File 'lib/base32/variant.rb', line 3

def alphabet
  Base32::ALPHABET
end

#clean(asc_src) ⇒ Object



15
16
17
# File 'lib/base32/variant.rb', line 15

def clean(asc_src)
  asc_src.upcase.tr("^#{self.alphabet}", '')
end

#unwrap(asc_src) ⇒ Object



11
12
13
# File 'lib/base32/variant.rb', line 11

def unwrap(asc_src)
  asc_src.tr(self.alphabet, Base32::ALPHABET)
end

#wrap(asc_src) ⇒ Object



7
8
9
# File 'lib/base32/variant.rb', line 7

def wrap(asc_src)
  asc_src.tr(Base32::ALPHABET, self.alphabet)
end