integer-base

  • This repository is archived

  • No longer maintained

  • All versions have been removed from https://rubygems.org to free up valuable namespace for other developers.

Description

Any formats can mean positional/unary numeral systems :) So base number conversion under your choice.

Features

  • You can easily build base numbers.

  • An example, upper the “36”.

Usage

Introduction

require 'integer/base'

Integer::Base.parse '10', %w[0 1 2 3 4 5 6 7 8 9]   #=> 10

# Extend core methods with refinement
using Integer::Base

'10'.to_i %w[0 1]                                   #=> 2
10.to_s   %w[0 1]                                   #=> "2"

Upper 36 base number

'10'.to_i 36                                        #=> 36
'10'.to_i [*'0'..'9', *'A'..'Z']                    #=> 36
'10'.to_i 37                                        #=> ArgumentError
'10'.to_i [*'0'..'9', *'A'..'Z', '?']               #=> 37
'1?'.to_i [*'0'..'9', *'A'..'Z', '?']               #=> 73 (37 * 1 + 36 * 1)

Actual usecase, special mapping as Crockford’s base32

1998335352370349147064579878655797352.to_s('0123456789ABCDEFGHJKMNPQRSTVWXYZ'.chars)
# => "1g3erma7w2dm6934zqz3qda38"

Let’s begin, your strange base number.


':)'.to_i %w[) :]                                   #=> 2

License

The MIT X11 License Copyright © 2011 Kenichi Kamiya