Faker は Perl の Data::Faker ライブラリの移植です。名前、住所、電話番号などの偽のデータを生成するためのライブラリです。
Faker は、開発中に現実的なテスト データを生成し、データベースに複数のレコードを追加するのに役立ちます。
これはスクリーンショットを撮る (個人的なプロジェクトのスクリーンショットを撮る) のに非常に便利で、これがこの宝石を作成する最初のきっかけでした。
クイックリンク
- 最新バージョンのドキュメントをお読みください。
- ?最近のバージョンでの変更点を確認してください。
メディアで
- ?優れたユーモアには優れた開発者の関与が伴います - KTH 王立工科大学の調査
- Computer und Kommunikation 4.5.2024、komplette Sendung - ドイツ・ファンク・ラジオのインタビュー
目次
- フェイカー
- クイックリンク
- 目次
- はじめる
- 使用法
- Generators のバージョンに関する注意事項
- 独自の価値を確保する
- 決定的ランダム
- カスタマイズ
- ミニテストとフェイカー >= 2.22
- 発電機
- 貢献する
- バージョン管理
- ライセンス
注意事項
- Faker はデータをランダムに生成しますが、デフォルトでは戻り値が一意であることが保証されません。一意の値が必要な場合を明示的に指定するには、一意の値の確保を参照してください。決定的機能を使用する場合は、値を決定的にすることもできます。「決定的ランダム」を参照してください。
- これは Faker の
main
ブランチであり、まだリリースされていない変更が含まれている可能性があります。利用可能な方法については、お使いのバージョンの README を参照してください。すべてのバージョンのリストはここから入手できます。
はじめる
まず、Gemfile にfaker
含めます。
次に、 bundle install
実行します。
使用法
Faker の使用方法の例をいくつか示します。
"5479 William Way, East Sonnyhaven, LA 63637"
Faker::Markdown.emphasis #=> "Quo qui aperiam. Amet corrupti distinctio. Sit quia *dolor.*"
Faker::TvShows::RuPaul.queen #=> "Violet Chachki"
Faker::Alphanumeric.alpha(number: 10) #=> "zlvubkrwga"
Faker::ProgrammingLanguage.name #=> "Ruby"">
require 'faker'
Faker :: Name . name #=> "Christophe Bartell"
Faker :: Address . full_address #=> "5479 William Way, East Sonnyhaven, LA 63637"
Faker :: Markdown . emphasis #=> "Quo qui aperiam. Amet corrupti distinctio. Sit quia *dolor.*"
Faker :: TvShows :: RuPaul . queen #=> "Violet Chachki"
Faker :: Alphanumeric . alpha ( number : 10 ) #=> "zlvubkrwga"
Faker :: ProgrammingLanguage . name #=> "Ruby"
ジェネレーターの完全なリストについては、「ジェネレーター」を参照してください。
Generators のバージョンに関する注意事項
uninitialized constant Faker::[some_class]
エラーが発生した場合、gem のバージョンは main よりも遅れています。
あなたの gem がここに記載されているものであることを確認するには、Gemfile の行を次のように変更します。
gem 'faker' , :git => 'https://github.com/faker-ruby/faker.git' , :branch => 'main'
ジェネレーターには、実装の先頭に@faker.version
タグがあります。タグから、ジェネレーターが追加されたバージョンを識別できます。
# Faker::TvShows::ParksAndRec.character
# @faker.version 1.9.0
def character
fetch ( 'parks_and_rec.characters' )
end
独自の価値を確保する
Faker が確実に一意の値を生成できるようにするには、メソッド呼び出しの前にunique
を付けます。
Faker :: Name . unique . name # This will return a unique name every time it is called
潜在的な値の数が限られているジェネレーターから多すぎる一意の値が要求された場合、 Faker::UniqueGenerator::RetryLimitExceeded
例外が発生する可能性があります。たとえばテスト間などに返された一意の値の記録をクリアすることができます。
Faker :: Name . unique . clear # Clears used values for Faker::Name
Faker :: UniqueGenerator . clear # Clears used values for all generators
生成されたデータと衝突がある場合は、すでに使用されている値を独自のジェネレーターに与えることもできます (つまり、FactoryBot をランダムな値と手動で設定した値で使用する)。
# Usage:
# Faker::.unique.exclude(method, arguments, list)
# Add 'azerty' and 'wxcvbn' to the string generator with 6 char length
Faker :: Lorem . unique . exclude :string , [ number : 6 ] , %w[ azerty wxcvbn ]
決定的ランダム
Faker は、反復されたメソッド呼び出しの確定的な出力を提供するために、擬似乱数ジェネレーター (PRNG) のシードをサポートしています。
"engage strategic platforms"
Faker::Config.random = Random.new(42)
Faker::Company.bs #=> "seize collaborative mindshare"
Faker::Company.bs #=> "engage strategic platforms"
Faker::Config.random = nil # seeds the PRNG using default entropy sources
Faker::Config.random.seed #=> 185180369676275068918401850258677722187
Faker::Company.bs #=> "cultivate viral synergies"">
Faker :: Config . random = Random . new ( 42 )
Faker :: Company . bs #=> "seize collaborative mindshare"
Faker :: Company . bs #=> "engage strategic platforms"
Faker :: Config . random = Random . new ( 42 )
Faker :: Company . bs #=> "seize collaborative mindshare"
Faker :: Company . bs #=> "engage strategic platforms"
Faker :: Config . random = nil # seeds the PRNG using default entropy sources
Faker :: Config . random . seed #=> 185180369676275068918401850258677722187
Faker :: Company . bs #=> "cultivate viral synergies"
カスタマイズ
Faker で世界の場所に応じた情報を印刷したい場合があります。これを支援するために、Faker はI18n
gem を使用して、選択した地域の名前と郵便番号を表す文字列と形式を保存します。
以下に示すように必要なロケールを設定するだけで、残りは Faker が処理します。
Faker :: Config . locale = 'es'
# or
Faker :: Config . locale = :es
Faker のロケールをオーバーライドし、スレッドサーバー環境に設定するには、ロケールの README を確認してください。
ミニテストとフェイカー >= 2.22
Minitest の使用時に Faker (バージョン 2.22 以上) が重複した値を生成しないようにするには、 test_helper.rb
またはrails_helper.rb
ファイルに以下を追加する必要がある場合があります。
Faker :: Config . random = Random . new
詳細については、問題 #2534 を参照してください。
発電機
これは、この gem で利用できるジェネレーターの完全なリストです。それらの詳細が必要な場合は、必ずドキュメントを参照してください。
注: 以下のジェネレーターの一部はまだリリースされていません。これらを使用したい場合は、gemfile の行を次のように変更します。
gem 'faker' , :git => 'https://github.com/faker-ruby/faker.git' , :branch => 'main'
デフォルト
- Faker::アドレス
- Faker::英数字
- フェイカー::エンシェント
- Faker::アプリ
- Faker::アプライアンス
- フェイカー::アーティスト
- フェイカー::アバター
- フェイカー::バンク
- Faker::バーコード
- フェイカー::ビール
- フェイカー::ブラッド
- Faker::ブール値
- Faker::ボサノバ
- Faker::ビジネス
- Faker::カメラ
- Faker::カンナビス
- Faker::チリラット
- Faker::チャックノリス
- Faker::コード
- フェイカー::コーヒー
- フェイカー::コイン
- Faker::カラー
- Faker::コマース
- Faker::会社
- Faker::コンパス
- Faker::コンピューター
- Faker::建設
- Faker::コスメア
- Faker::クリプト
- Faker::クリプトコイン
- Faker::通貨
- Faker::日付
- Faker::DcComics
- Faker::人口統計
- フェイカー::デザート
- Faker::デバイス
- Faker::運転免許証
- Faker::ドローン
- Faker::教育者
- Faker::ElectricalComponents
- Faker::エモーション
- Faker::Eスポーツ
- Faker::ファイル
- Faker::ファイナンス
- Faker::食べ物
- Faker::FunnyName
- フェイカー::ジェンダー
- Faker::ギリシャの哲学者
- フェイカー::ハッカー
- フェイカー::ヒップスター
- Faker::ホビー
- フェイカー::ハウス
- Faker::IdNumber
- Faker::業界セグメント
- Faker::インターネット
- Faker::請求書
- フェイカー::ジョブ
- フェイカー::ジェイソン
- Faker::Kポップ
- Faker::ローレム
- Faker::LoremFlickr
- Faker::マークダウン
- Faker::マーケティング
- Faker::測定
- Faker::軍事
- フェイカー::マウンテン
- フェイカー::名前
- フェイカー::ネイション
- Faker::NatoPhoneticAlphabet
- Faker::NationalHealthService
- フェイカー::ナンバー
- Faker::Omniauth
- Faker::電話番号
- Faker::Placeholdit
- Faker::プログラミング言語
- Faker::関係
- フェイカー::レストラン
- フェイカー::サイエンス
- Faker::Slack絵文字
- Faker::ソース
- Faker::南アフリカ
- フェイカー::スペース
- Faker::文字列
- フェイカー::ストライプ
- Faker::サブスクリプション
- フェイカー::スーパーヒーロー
- フェイカー::ティー
- Faker::チーム
- フェイカー::シアター
- フェイカー::タイム
- フェイカー::ツイッター
- Faker::タイプ
- Faker::大学
- Faker::乗り物
- Faker::動詞
- Faker::VulnerabilityIdentifier
- Faker::ワールドカップ
ブロックチェーン
- Faker::ブロックチェーン::エタニティ
- Faker::ブロックチェーン::ビットコイン
- Faker::ブロックチェーン::イーサリアム
- Faker::ブロックチェーン::Tezos
本
- Faker::本
- Faker::Books::Cultureシリーズ
- Faker::Books::Dune
- Faker::書籍::ラヴクラフト
- Faker::Books::TheKingkillerChronicle
ファンタジー
旅行
- Faker:旅行::空港
- Faker:旅行::鉄道駅
生き物
- フェイカー::クリーチャー::動物
- フェイカー::クリーチャー::鳥
- フェイカー::クリーチャー::猫
- フェイカー::クリーチャー::犬
- フェイカー::クリーチャー::馬
ゲーム
- Faker::ゲーム
- Faker::Games::ClashOfClans
- Faker::Games::DnD
- Faker::Games::Dota
- Faker::Games::ElderScrolls
- Faker::ゲーム::フォールアウト
- Faker::Games::FinalFantasyXIV
- Faker::Games::HalfLife
- Faker::ゲーム::ヒーローズ
- Faker::Games::HeroesOfTheStorm
- Faker::Games::LeagueOfLegends
- Faker::ゲーム::Minecraft
- Faker::Games::Myst
- Faker::ゲーム::オーバーウォッチ
- Faker::ゲーム::ポケモン
- Faker::Games::ソニック・ザ・ヘッジホッグ
- Faker::Games::ストリートファイター
- Faker::Games::スーパーマリオ
- Faker::Games::SuperSmashBros
- Faker::ゲーム::東方
- Faker::Games::WarhammerFantasy
- Faker::ゲーム::ウィッチャー
- Faker::Games::WorldOfWarcraft
- Faker::ゲーム::ゼルダ
日本のメディア
- Faker::JapaneseMedia::CowboyBebop
- Faker::JapaneseMedia::DragonBall
- Faker::JapaneseMedia::OnePiece
- Faker::JapaneseMedia::StudioGhibli
- Faker::JapaneseMedia::SwordArtOnline
- Faker::JapaneseMedia::Naruto
- Faker::JapaneseMedia::ドラえもん
- Faker::JapaneseMedia::Conan
- Faker::JapaneseMedia::FullmetalAlchemistBrotherhood
映画
- Faker::ムービー
- Faker::映画::アバター
- Faker::映画::バックトゥザフューチャー
- Faker::映画::ディパーテッド
- Faker::映画::ゴーストバスターズ
- Faker::映画::ハリーポッター
- Faker::映画::銀河ヒッチハイカー ガイド
- Faker::映画::ホビット
- Faker::映画::ドラゴンを訓練する方法
- Faker::映画::リボウスキー
- Faker::映画::ロードオブザリング
- Faker::映画::プリンセスブライド
- Faker::映画::スターウォーズ
- Faker::映画::TRON
- Faker::映画::VForVendetta
音楽
- Faker::音楽
- Faker::Music::GratefulDead
- Faker::音楽::ヒップホップ
- Faker::ミュージック::オペラ
- Faker::Music::PearlJam
- Faker::Music::Phish
- フェイカー::ミュージック::プリンス
- Faker::音楽::ロックバンド
- Faker::ミュージック::ラッシュ
- Faker::音楽::スマッシングパンプキンズ
- Faker::Music::UmphreysMcgee
引用
- Faker::引用
- Faker::名言::チキート
- Faker::引用::ラジニカーント
- Faker::引用::シェイクスピア
スポーツ
- フェイカー::スポーツ
- Faker::スポーツ::バスケットボール
- Faker::スポーツ::チェス
- Faker::スポーツ::フットボール
- Faker::スポーツ::登山
- Faker::スポーツ::バレーボール
テレビ番組
- Faker::TvShows::AquaTeenHungerForce
- Faker::TvShows::Archer
- Faker::TvShows::BigBang Theory
- Faker::TvShows::BojackHorseman
- Faker::TvShows::BreakingBad
- Faker::TvShows::BrooklynNineNine
- Faker::TvShows::Buffy
- Faker::TvShows::コミュニティ
- Faker::TvShows::DrWho
- Faker::TvShows::DumbAndDumber
- Faker::TvShows::FamilyGuy
- Faker::TvShows::FinalSpace
- Faker::TvShows::Friends
- Faker::TvShows::GameOfThrones
- Faker::TvShows::HeyArnold
- Faker::TvShows::HowIMeetYourMother
- Faker::TvShows::マイケルスコット
- Faker::TvShows::NewGirl
- Faker::TvShows::ParksAndRec
- Faker::TvShows::RickAndMorty
- Faker::TvShows::RuPaul
- Faker::TvShows::Seinfeld
- Faker::TvShows::SiliconValley
- Faker::TvShows::Simpsons
- Faker::TvShows::SouthPark
- Faker::TvShows::スポンジボブ
- Faker::TvShows::StarTrek
- Faker::TvShows::Stargate
- Faker::TvShows::StrangerThings
- Faker::TvShows::スーツ
- Faker::TvShows::スーパーナチュラル
- Faker::TvShows::TheExpanse
- Faker::TvShows::TheFreshPrinceOfBelAir
- Faker::TvShows::TheITCrowd
- Faker::TvShows::TheThickOfIt
- Faker::TvShows::TwinPeaks
- Faker::TvShows::VentureBros
所在地
貢献する
注: 新しいジェネレーターとロケールの提案は受け付けていません。貢献ガイドには、この決定に関するいくつかの注意事項が記載されています。
マシン上でのリポジトリのセットアップ、バグ レポートのオープン、コードベースの理解、適切なプル リクエストの作成に関する手順については、寄稿ドキュメントを参照してください。
改善や機能リクエストについて何でも話し合うための Discord チャンネルがあります。
貢献者の皆様、ありがとうございます!
バージョン管理
Faker は、https://semver.org で定義されている Semantic Versioning 2.0 に従います。
ライセンス
このコードは、MIT ライセンスの条件に基づいて無料で使用できます。