Faker é uma porta da biblioteca Data::Faker do Perl. É uma biblioteca para gerar dados falsos, como nomes, endereços e números de telefone.
Faker ajuda você a gerar dados de teste realistas e preencher seu banco de dados com mais de alguns registros enquanto você desenvolve.
É muito útil para fazer capturas de tela (tirar capturas de tela para um projeto pessoal) e foi o impulso original para a criação desta joia.
Links rápidos
- Leia a documentação para a versão mais recente.
- ? Veja o que mudou nas versões recentes.
Na mídia
- ? Com muito humor vem um grande envolvimento do desenvolvedor - pesquisa do KTH Royal Institute of Technology
- Computer und Kommunikation 4.5.2024, komplette Sendung - Deutschland Funk Radio Entrevista
Índice
- Falsificador
- Links rápidos
- Índice
- Começando
- Uso
- Uma nota sobre as versões dos Geradores
- Garantindo valores únicos
- Aleatório Determinístico
- Personalização
- Miniteste e Faker >= 2,22
- Geradores
- Contribuindo
- Versionamento
- Licença
Notas
- Embora o Faker gere dados aleatoriamente, não há garantia de que os valores retornados sejam exclusivos por padrão. Para especificar explicitamente quando você precisa de valores exclusivos, consulte Garantindo valores exclusivos. Os valores também podem ser determinísticos se você usar o recurso determinístico, consulte Determinístico Aleatório
- Este é o ramo
main
do Faker e pode conter alterações que ainda não foram divulgadas. Consulte o README da sua versão para os métodos disponíveis. A lista de todas as versões está disponível aqui.
Começando
Comece incluindo faker
em seu Gemfile:
Em seguida, execute bundle install
.
Uso
Aqui estão alguns exemplos de como usar o 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"
Para obter uma lista completa dos geradores, consulte Geradores.
Uma nota sobre as versões dos Geradores
Se você receber um erro uninitialized constant Faker::[some_class]
, sua versão da gem está atrás de main.
Para ter certeza de que sua gem é a documentada aqui, altere a linha em seu Gemfile para:
gem 'faker' , :git => 'https://github.com/faker-ruby/faker.git' , :branch => 'main'
Os geradores possuem a tag @faker.version
no topo de sua implementação. A partir das tags você pode identificar a versão em que o gerador foi adicionado:
# Faker::TvShows::ParksAndRec.character
# @faker.version 1.9.0
def character
fetch ( 'parks_and_rec.characters' )
end
Garantindo valores únicos
Para garantir que o Faker gere valores únicos, prefixe sua chamada de método com unique
:
Faker :: Name . unique . name # This will return a unique name every time it is called
Se muitos valores exclusivos forem solicitados de um gerador que possui um número limitado de valores potenciais, uma exceção Faker::UniqueGenerator::RetryLimitExceeded
poderá ser gerada. É possível limpar o registro de valores únicos retornados, por exemplo, entre testes.
Faker :: Name . unique . clear # Clears used values for Faker::Name
Faker :: UniqueGenerator . clear # Clears used values for all generators
Você também pode fornecer alguns valores já usados ao gerador exclusivo se houver colisões com os dados gerados (ou seja: usando o FactoryBot com valores aleatórios e definidos manualmente).
# 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 ]
Aleatório Determinístico
Faker suporta a propagação de seu gerador de números pseudo-aleatórios (PRNG) para fornecer saída determinística de chamadas de método repetidas.
"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"
Personalização
Você pode querer que o Faker imprima informações dependendo da sua localização no mundo. Para ajudá-lo nisso, Faker usa a gema I18n
para armazenar strings e formatos para representar os nomes e códigos postais da área de sua escolha.
Basta definir o local desejado conforme mostrado abaixo e o Faker cuidará do resto.
Faker :: Config . locale = 'es'
# or
Faker :: Config . locale = :es
Para substituir as localidades do Faker e configurá-lo em ambientes de servidor encadeados, verifique o README de localidades.
Miniteste e Faker >= 2,22
Para evitar que o Faker (versão >= 2.22) gere valores duplicados ao usar o Minitest, pode ser necessário adicionar o seguinte ao arquivo test_helper.rb
ou rails_helper.rb
:
Faker :: Config . random = Random . new
Consulte a edição nº 2534 para obter mais detalhes.
Geradores
Esta é a lista completa de geradores disponíveis com esta joia. Se precisar de detalhes sobre algum deles, consulte a documentação.
NOTA: Alguns dos geradores abaixo ainda não foram lançados. Se você quiser usá-los, altere a linha no seu gemfile para:
gem 'faker' , :git => 'https://github.com/faker-ruby/faker.git' , :branch => 'main'
Padrão
- Falsificador::Endereço
- Faker::Alfanumérico
- Faker::Antigo
- Faker::Aplicativo
- Faker::Aparelho
- Faker::Artista
- Falsificador::Avatar
- Falsificador::Banco
- Faker::Código de barras
- Falsificador::Cerveja
- Falsificador::Sangue
- Faker::Booleano
- Faker::BossaNova
- Falsificador::Negócios
- Falsificador::Câmera
- Faker::Cannabis
- Faker::ChileRut
- Faker::ChuckNorris
- Falsificador::Código
- Falsificador::Café
- Falsificador::Moeda
- Falsificador::Cor
- Faker::Comércio
- Faker::Empresa
- Faker::Bússola
- Falsificador::Computador
- Faker::Construção
- Faker::Cosmere
- Faker::Criptografia
- Faker::CryptoCoin
- Falsificador::Moeda
- Falsificador::Data
- Faker::DcComics
- Faker:: Demográfico
- Falsificador::Sobremesa
- Faker::Dispositivo
- Faker::carta de condução
- Falsificador::Drone
- Faker::Educador
- Faker::Componentes Elétricos
- Faker::Emoção
- Faker::Esport
- Falsificador::Arquivo
- Faker::Finanças
- Falsificador::Comida
- Faker::Nome Engraçado
- Faker::Gênero
- Faker::Filósofos Gregos
- Falsificador::Hacker
- Falsificador::Hipster
- Falsificador::Hobby
- Faker::Casa
- Faker::Número de identificação
- Faker::Segmentos da Indústria
- Falsificador::Internet
- Faker::Fatura
- Falsificador::Trabalho
- Falsificador::Json
- Falsificador::Kpop
- Faker::Lorem
- Faker::LoremFlickr
- Faker::Marcação
- Falsificador::Marketing
- Faker::Medição
- Falsificador::Militar
- Faker::Montanha
- Faker::Nome
- Faker::Nação
- Faker::NatoFonéticoAlfabeto
- Faker::NationalHealthService
- Falsificador::Número
- Faker:: Omniauth
- Faker::Número de telefone
- Faker::Placeholdit
- Faker::Linguagem de programação
- Faker::Relacionamento
- Faker::Restaurante
- Faker::Ciência
- Faker::SlackEmoji
- Falsificador::Fonte
- Faker::África do Sul
- Faker::Espaço
- Falsificador::String
- Faker::Listra
- Faker::Assinatura
- Faker::Super-herói
- Faker::Chá
- Falsificador::Equipe
- Faker::Teatro
- Falsificador::Tempo
- Falsificador::Twitter
- Faker::Tipos
- Faker::Universidade
- Falsificador::Veículo
- Falsificador::Verbos
- Faker::Identificador de Vulnerabilidade
- Faker::Copa do Mundo
Blockchain
- Faker::Blockchain::Aeternidade
- Faker::Blockchain::Bitcoin
- Faker::Blockchain::Ethereum
- Faker::Blockchain::Tezos
Livros
- Falsificador::Livro
- Faker::Livros::Série Cultura
- Faker::Livros::Duna
- Faker::Livros::Lovecraft
- Faker::Livros::TheKingkillerChronicle
Fantasia
Viagem
- Faker:Viagem::Aeroporto
- Faker:Viagem::Estação Ferroviária
Criatura
- Faker::Criatura::Animal
- Faker::Criatura::Pássaro
- Faker::Criatura::Gato
- Faker::Criatura::Cão
- Faker::Criatura::Cavalo
Jogos
- Falsificador::Jogo
- Faker::Jogos::ClashOfClans
- Faker::Jogos::DnD
- Faker::Jogos::Dota
- Faker::Jogos::ElderScrolls
- Faker::Jogos::Fallout
- Faker::Jogos::FinalFantasyXIV
- Faker::Jogos::HalfLife
- Faker::Jogos::Heróis
- Faker::Jogos::HeroesOfTheStorm
- Faker::Jogos::LeagueOfLegends
- Faker::Jogos::Minecraft
- Faker::Jogos::Myst
- Faker::Jogos::Overwatch
- Faker::Jogos::Pokémon
- Faker::Jogos::SonicTheHedgehog
- Faker::Jogos::StreetFighter
- Faker::Jogos::SuperMario
- Faker::Jogos::SuperSmashBros
- Faker::Jogos::Touhou
- Faker::Jogos::WarhammerFantasy
- Faker::Jogos::Witcher
- Faker::Jogos::WorldOfWarcraft
- Faker::Jogos::Zelda
Mídia Japonesa
- Faker::JapaneseMídia::CowboyBebop
- Faker::JaponêsMídia::DragonBall
- Faker::JapaneseMedia::OnePiece
- Faker::JapaneseMedia::StudioGhibli
- Faker::JapaneseMedia::SwordArtOnline
- Faker::JapaneseMídia::Naruto
- Faker::JapaneseMídia::Doraemon
- Faker::JaponêsMídia::Conan
- Faker::JapaneseMedia::FullmetalAlchemistBrotherhood
Filmes
- Falsificador::Filme
- Faker::Filmes::Avatar
- Faker::Movies::BackToTheFuture
- Faker::Filmes::Partidos
- Faker::Filmes::Caça-Fantasmas
- Faker::Filmes::HarryPotter
- Faker::Movies::HitchhikersGuideToTheGalaxy
- Faker::Filmes::Hobbit
- Faker::Movies::Como treinar seu dragão
- Faker::Filmes::Lebowski
- Faker::Filmes::LordOfTheRings
- Faker::Filmes::PrincessBride
- Faker::Filmes::Guerra nas Estrelas
- Faker::Filmes::TRON
- Faker::Movies::VForVendetta
Música
- Faker::Música
- Faker::Música::GratefulDead
- Faker::Música::Hiphop
- Faker::Música::Ópera
- Faker::Música::PearlJam
- Faker::Música::Phish
- Faker::Música::Príncipe
- Faker::Música::RockBand
- Faker::Música::Rush
- Faker::Música::SmashingPumpkins
- Faker::Música::UmphreysMcgee
Citações
- Falsificador::Citação
- Faker::Citações::Chiquito
- Faker::Citações::Rajnikanth
- Faker::Citações::Shakespeare
Esportes
- Faker::Esporte
- Faker::Esportes::Basquete
- Faker::Esportes::Xadrez
- Faker::Esportes::Futebol
- Faker::Esportes::Alpinismo
- Faker::Esportes::Vôlei
Programas de TV
- Faker::Programas de TV::AquaTeenHungerForce
- Faker::Programas de TV::Arqueiro
- Faker::Programas de TV::Teoria do BigBang
- Faker::Programas de TV::BojackHorseman
- Faker::Programas de TV::BreakingBad
- Faker::Programas de TV::BrooklynNineNine
- Faker::Programas de TV::Buffy
- Faker::Programas de TV::Comunidade
- Faker::Programas de TV::DrWho
- Faker::Programas de TV::DumbAndDumber
- Faker::Programas de TV::FamilyGuy
- Faker::TvShows::FinalSpace
- Faker::Programas de TV::Amigos
- Faker::Programas de TV::GameOfThrones
- Faker::Programas de TV::Ei Arnold
- Faker::Programas de TV::HowIMetYourMother
- Faker::Programas de TV::MichaelScott
- Faker::Programas de TV::NewGirl
- Faker::TvShows::ParksAndRec
- Faker::Programas de TV::RickAndMorty
- Faker::Programas de TV::RuPaul
- Faker::Programas de TV::Seinfeld
- Faker::Programas de TV::SiliconValley
- Faker::Programas de TV::Simpsons
- Faker::Programas de TV::SouthPark
- Faker::Programas de TV::Bob Esponja
- Faker::Programas de TV::StarTrek
- Faker::Programas de TV::Stargate
- Faker::Programas de TV::StrangerThings
- Faker::Programas de TV::Ternos
- Faker::Programas de TV::Sobrenatural
- Faker::Programas de TV::TheExpanse
- Faker::Programas de TV::TheFreshPrinceOfBelAir
- Faker::TvShows::TheITCrowd
- Faker::Programas de TV::TheThickOfIt
- Faker::Programas de TV::TwinPeaks
- Faker::Programas de TV::VentureBros
Locais
Contribuindo
Obs : Não estamos aceitando propostas de novos geradores e localidades. O guia de contribuição contém algumas notas sobre esta decisão.
Dê uma olhada no documento Contributing para obter instruções sobre como configurar o repositório em sua máquina, abrir relatórios de bugs, entender a base de código e criar uma boa solicitação pull.
Existe um canal Discord para discutir qualquer coisa relacionada a melhorias ou solicitações de recursos.
Obrigado, colaboradores!
Versionamento
Faker segue o Semantic Versioning 2.0 conforme definido em https://semver.org.
Licença
Este código é de uso gratuito sob os termos da licença do MIT.