class DigitConvertor

Constants

DEFAULT_CHARS
VERSION

Attributes

n[R]

Public Class Methods

new(chars = DEFAULT_CHARS) click to toggle source
# File lib/digit_convertor.rb, line 8
def initialize(chars = DEFAULT_CHARS)
  @n = chars.size
  @chars = chars
  @chars_hash = Hash[*(@chars).zip((0..@n).to_a).flatten]
end

Public Instance Methods

from(str) click to toggle source
# File lib/digit_convertor.rb, line 24
def from(str)
  i = str.split('').size - 1
  r = 0
  str.split('').each_with_index do |c, n|
    r += @n ** (i-n) * @chars_hash[c]
  end
  r
end
to(i) click to toggle source
# File lib/digit_convertor.rb, line 14
def to(i)
  digit = []
  begin
    i, c = i.divmod @n
    digit << @chars[c]
  end while i > 0

  return digit.reverse.join ''
end