Help us understand the problem. What is going on with this article?

Fakerでダミーデータを生成する

More than 1 year has passed since last update.

Fakerというライブラリを利用してRubyでダミーデータを扱います。

Faker https://github.com/stympy/faker

生成してくれるデータは名前、住所以外にもメールアドレスなど多岐に渡ります。
インストールはいつものようにgem install fakerしてください。

以下のようなサンプルを用意して実行してみます。

sample.rb
#coding utf-8

require 'faker'
require 'Set'

puts Faker::Code.ean #=> EANコード
puts Faker::Name.name #=> 氏名
puts Faker::Lorem.sentence #=> loremな文章

今回は商品識別コードであるEANコード(日本のJANコードみたいなやつ)、氏名とLorem ipsum(一種のダミーテキスト)を出力してみます。
これを実行してみるとこんな感じになります。

$ ruby sample.rb 
8227509485998
Osvaldo Trantow
Nihil voluptatem voluptatem ut.

Fakerは便利なことに多言語対応していてロケールを切り替えれば各ロケール固有のフェイクデータを作成できます。
例えば日本にセットすれば日本名の姓名が生成されます。これは単にlib/localesにあるメッセージファイルに記載しているだけなのでここに追加すればバリエーションを増やすことも可能だと思われます。

lib/locales
Faker::Config.locale = :ja

puts Faker::Name.name #=> 日本語氏名
puts Faker::Address.name #=> 住所

生成できるデータの種類は多岐に渡り、インターネット関連だとメールアドレス、ドメイン、URLなどもあります。それ以外にも各種住所関連、クレジットカード番号とか電話番号が生成できたりします。
加えてそれぞれ結構細かい単位で生成することもできて痒いところに手が届く感じなので、テストコードなんかでダミーのパラメータを用意するときとか地味に面倒なのですごく役に立つかと。

注:この記事はブログの記事を加筆修正して転載したものです。

Keisuke69
Amazon Web Service Japan K.K.で働いてますが、ここでの投稿は個人のものであって所属する企業や団体の見解を示すものではありません。つまり自分の会社とかは関係ないよってことです。
http://www.keisuke69.net/
techtrain
プロのエンジニアを目指すU30(30歳以下)の方に現役エンジニアにメンタリングもらえるコミュニティです。
https://techbowl.co.jp/techtrain/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away