Hatena::Groupsubtech

#生存戦略 、それは

-> 10 { 02 / 24 }

Ruby で 10進数 <=> 62進数 などのコンバータ生成クラス

22:42 | はてなブックマーク - Ruby で 10進数  62進数 などのコンバータ生成クラス - #生存戦略 、それは

なんか無性に Ruby が書きたくなったので、良くある短縮 URL ぽい 62 進数 (0-9, a-z, A-Z) とかに変換できるコンバータ生成クラスを作ってみた。

# 0-9, a-z, A-Z な char を渡す
d62 = DigitConvertor.new [('0'..'9'), ('a'..'z'), ('A'..'Z')].map {|r| r.to_a }.flatten
p d62.to(98798798735665662) #=> "7iuYfThXxc"
p d62.from("7iuYfThXxc")    #=> 98798798735665662

もちろん 62 進数じゃなくても良いし、char は好きな記号とかを入れても良い。

$KCODE = 'u';
d8 = DigitConvertor.new %w{☆ ★ ♪ △ ▼ ○ ● ◎}
d8.to(987987987) #=> "◎♪◎☆◎☆☆☆♪△"
d8.from("◎♪◎☆◎☆☆☆♪△") #=> 987987987

以下コード

トラックバック - http://subtech.g.hatena.ne.jp/secondlife/20100224