既存の gem に全力で乗っかっていくやり方
まとめ
適当な名前を要求された時に human readable な名前をパッと答えられてべんり
注意点
- PATH が通っている/を通した 適当なディレクトリ(
$HOME/.local/bin/random_name
とか)に実行可能な状態で置いておく - 依存する gem がインストールされてる前提で単体では動かないのですごく脆い作りになってる
- 特定のバージョン(eg. OS 標準のもの)に依存 gem をインストールしておくか、
rbenv each gem install randexp faker forgery
しておくといつでも動いてくれる
書いてみる
randome_name
:
#!/home/_my_name_/.anyenv/envs/rbenv/shims/ruby # vim ft=ruby require 'randexp' require 'faker' require 'forgery' # 名前の生成ルールを作る(ハイフン区切りで3種のランダム値) class Randgen def self.rand_name(options = {}) /#{Forgery::Basic.color}-#{Faker::Name.first_name}-\d{4}/.gen.downcase end end def random_name(n) default_print_times = 1 # [n.to_i, default_print_times].reject(&:zero?).first # 別解(?) (n.to_i.zero? ? default_print_times : n.to_i) .times do puts /[:rand_name:]/.gen end end # 外部から引数を受けての関数呼び出し random_name(ARGV[0])
実行してみる
$ random_name 10 # 10 個作ってもらう teal-johnathan-5681 khaki-duncan-8678 indigo-mia-2580 khaki-stewart-1702 orange-hermann-9683 aquamarine-josiah-6211 crimson-alexa-8922 indigo-jermain-8659 indigo-emily-7018 red-ned-8965