ブログ

読んで思い出す。忘れるために書く

Heroku アプリっぽい名前を生成する

既存の 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

Links