module Faker::Base58
Public Class Methods
encode(str)
click to toggle source
# File lib/helpers/base58.rb, line 5 def self.encode(str) alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz' base = alphabet.size lv = 0 str.split('').reverse.each_with_index { |v, i| lv += v.unpack('C')[0] * 256**i } ret = +'' while lv.positive? lv, mod = lv.divmod(base) ret << alphabet[mod] end npad = str.match(/^#{0.chr}*/)[0].to_s.size '1' * npad + ret.reverse end