任意の桁数&区切り文字のランダムなIDを生成するスクリプト
ソフトウェアのプロダクトキーのような文字列を自動生成するスクリプトを書いたのでメモ。
とりあえず動くレベルのコードですが。
# 使用する文字のリスト list = [] # リストに数値を追加 0.upto(9) do |i| list << i.to_s end # リストにアルファベット(小文字のみ)を追加 "a".upto("z") do |c| list << c end # 区切り文字と各区分の桁数を指定 sep = "-" digits = [3, 3, 4] # ID生成 id = "" digits.each do |digit| digit.times do id << list.choice end id << sep end id.chop! p id
何も考えずに書いたので、やはりメソッドのないコードになってしまった。
ソフトウェアに組み込む際はリファクタリング必須。
【追記】文字のuptoを思いついたので修正 ;-)
ちなみに修正前はこんなんでした。
# リストにアルファベット(小文字のみ)を追加 c = "a" begin list << c break if c == "z" end while c = c.next
ひ、ひどい・・