module Neb::BaseConvert
@see github.com/cryptape/ruby-ethereum/blob/master/lib/ethereum/base_convert.rb
Constants
- BaseSymbols
Public Instance Methods
convert(s, from, to, minlen = 0)
click to toggle source
# File lib/neb/base_convert.rb, line 25 def convert(s, from, to, minlen = 0) return Utils.lpad(s, symbols(from)[0], minlen) if from == to encode(decode(s, from), to, minlen) end
decode(s, base)
click to toggle source
# File lib/neb/base_convert.rb, line 42 def decode(s, base) syms = symbols(base) s = s.downcase if base == 16 result = 0 while s.size > 0 result *= base result += syms.index(s[0]) s = s[1..-1] end result end
encode(v, base, minlen = 0)
click to toggle source
# File lib/neb/base_convert.rb, line 30 def encode(v, base, minlen = 0) syms = symbols(base) result = '' while v > 0 result = syms[v % base] + result v /= base end Utils.lpad(result, syms[0], minlen) end
symbols(base)
click to toggle source
# File lib/neb/base_convert.rb, line 21 def symbols(base) BaseSymbols[base] or raise ArgumentError, "invalid base!" end