faker 2.2.0 → 3.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1298 -24
- data/History.md +5 -5
- data/README.md +239 -104
- data/lib/faker/blockchain/aeternity.rb +70 -0
- data/lib/faker/blockchain/bitcoin.rb +28 -2
- data/lib/faker/blockchain/ethereum.rb +11 -1
- data/lib/faker/blockchain/tezos.rb +93 -9
- data/lib/faker/books/book.rb +36 -0
- data/lib/faker/books/culture_series.rb +49 -0
- data/lib/faker/books/dune.rb +73 -17
- data/lib/faker/books/lovecraft.rb +186 -57
- data/lib/faker/books/the_kingkiller_chronicle.rb +61 -0
- data/lib/faker/creature/animal.rb +9 -0
- data/lib/faker/creature/bird.rb +203 -0
- data/lib/faker/creature/cat.rb +27 -0
- data/lib/faker/creature/dog.rb +72 -0
- data/lib/faker/creature/horse.rb +18 -0
- data/lib/faker/default/address.rb +253 -33
- data/lib/faker/default/adjective.rb +35 -0
- data/lib/faker/default/alphanumeric.rb +27 -22
- data/lib/faker/default/ancient.rb +36 -0
- data/lib/faker/default/app.rb +46 -16
- data/lib/faker/default/appliance.rb +18 -0
- data/lib/faker/default/artist.rb +9 -0
- data/lib/faker/default/avatar.rb +32 -24
- data/lib/faker/default/bank.rb +118 -29
- data/lib/faker/default/barcode.rb +165 -0
- data/lib/faker/default/beer.rb +75 -3
- data/lib/faker/default/blood.rb +48 -0
- data/lib/faker/default/boolean.rb +13 -6
- data/lib/faker/default/bossa_nova.rb +18 -0
- data/lib/faker/default/business.rb +27 -0
- data/lib/faker/default/camera.rb +46 -0
- data/lib/faker/default/cannabis.rb +90 -0
- data/lib/faker/default/chile_rut.rb +62 -26
- data/lib/faker/default/chuck_norris.rb +13 -2
- data/lib/faker/default/code.rb +162 -58
- data/lib/faker/default/coffee.rb +45 -0
- data/lib/faker/default/coin.rb +18 -0
- data/lib/faker/default/color.rb +123 -5
- data/lib/faker/default/commerce.rb +105 -37
- data/lib/faker/default/company.rb +446 -34
- data/lib/faker/default/compass.rb +135 -0
- data/lib/faker/default/computer.rb +63 -0
- data/lib/faker/default/construction.rb +54 -0
- data/lib/faker/default/cosmere.rb +90 -0
- data/lib/faker/default/crypto.rb +44 -4
- data/lib/faker/default/crypto_coin.rb +48 -18
- data/lib/faker/default/currency.rb +27 -0
- data/lib/faker/default/date.rb +149 -52
- data/lib/faker/default/dc_comics.rb +45 -0
- data/lib/faker/default/demographic.rb +58 -6
- data/lib/faker/default/dessert.rb +27 -0
- data/lib/faker/default/device.rb +54 -0
- data/lib/faker/default/driving_licence.rb +85 -28
- data/lib/faker/default/drone.rb +332 -0
- data/lib/faker/default/educator.rb +73 -6
- data/lib/faker/default/electrical_components.rb +27 -0
- data/lib/faker/default/emotion.rb +33 -0
- data/lib/faker/default/esport.rb +45 -0
- data/lib/faker/default/file.rb +53 -38
- data/lib/faker/default/finance.rb +75 -8
- data/lib/faker/default/food.rb +93 -3
- data/lib/faker/default/funny_name.rb +45 -0
- data/lib/faker/default/gender.rb +31 -0
- data/lib/faker/default/greek_philosophers.rb +18 -0
- data/lib/faker/default/hacker.rb +59 -1
- data/lib/faker/default/hipster.rb +106 -81
- data/lib/faker/default/hobby.rb +22 -0
- data/lib/faker/default/house.rb +18 -0
- data/lib/faker/default/html.rb +230 -0
- data/lib/faker/default/id_number.rb +276 -18
- data/lib/faker/default/industry_segments.rb +36 -0
- data/lib/faker/default/internet.rb +442 -147
- data/lib/faker/default/internet_http.rb +48 -0
- data/lib/faker/default/invoice.rb +37 -29
- data/lib/faker/default/job.rb +36 -0
- data/lib/faker/default/json.rb +61 -30
- data/lib/faker/default/kpop.rb +54 -0
- data/lib/faker/default/lorem.rb +184 -121
- data/lib/faker/default/lorem_flickr.rb +69 -68
- data/lib/faker/default/markdown.rb +97 -15
- data/lib/faker/default/marketing.rb +9 -0
- data/lib/faker/default/measurement.rb +101 -50
- data/lib/faker/default/military.rb +71 -0
- data/lib/faker/default/mountain.rb +33 -0
- data/lib/faker/default/name.rb +99 -6
- data/lib/faker/default/nation.rb +45 -5
- data/lib/faker/default/nato_phonetic_alphabet.rb +9 -0
- data/lib/faker/default/nhs.rb +21 -7
- data/lib/faker/default/number.rb +160 -91
- data/lib/faker/default/omniauth.rb +199 -137
- data/lib/faker/default/phone_number.rb +89 -11
- data/lib/faker/default/placeholdit.rb +23 -25
- data/lib/faker/default/programming_language.rb +18 -0
- data/lib/faker/default/relationship.rb +47 -7
- data/lib/faker/default/religion.rb +6 -0
- data/lib/faker/default/restaurant.rb +54 -2
- data/lib/faker/default/science.rb +135 -0
- data/lib/faker/default/slack_emoji.rb +81 -0
- data/lib/faker/default/source.rb +46 -22
- data/lib/faker/default/south_africa.rb +90 -0
- data/lib/faker/default/space.rb +128 -1
- data/lib/faker/default/string.rb +18 -9
- data/lib/faker/default/stripe.rb +68 -27
- data/lib/faker/default/subscription.rb +45 -0
- data/lib/faker/default/superhero.rb +45 -0
- data/lib/faker/default/tea.rb +41 -0
- data/lib/faker/default/team.rb +45 -0
- data/lib/faker/default/time.rb +84 -68
- data/lib/faker/default/twitter.rb +57 -47
- data/lib/faker/default/types.rb +90 -41
- data/lib/faker/default/university.rb +45 -0
- data/lib/faker/default/vehicle.rb +223 -60
- data/lib/faker/default/verb.rb +45 -0
- data/lib/faker/default/vulnerability_identifier.rb +23 -0
- data/lib/faker/default/world_cup.rb +52 -16
- data/lib/faker/fantasy/tolkien.rb +67 -0
- data/lib/faker/games/clash_of_clans.rb +48 -0
- data/lib/faker/games/control.rb +113 -0
- data/lib/faker/games/dnd.rb +178 -0
- data/lib/faker/games/dota.rb +61 -6
- data/lib/faker/games/elder_scrolls.rb +98 -0
- data/lib/faker/games/fallout.rb +37 -0
- data/lib/faker/games/final_fantasy_xiv.rb +73 -0
- data/lib/faker/games/game.rb +27 -0
- data/lib/faker/games/half_life.rb +27 -0
- data/lib/faker/games/heroes.rb +40 -0
- data/lib/faker/games/heroes_of_the_storm.rb +48 -1
- data/lib/faker/games/league_of_legends.rb +54 -0
- data/lib/faker/games/minecraft.rb +113 -0
- data/lib/faker/games/myst.rb +45 -0
- data/lib/faker/games/overwatch.rb +27 -0
- data/lib/faker/games/pokemon.rb +27 -0
- data/lib/faker/games/sonic_the_hedgehog.rb +27 -0
- data/lib/faker/games/street_fighter.rb +61 -0
- data/lib/faker/games/super_mario.rb +48 -0
- data/lib/faker/games/super_smash_bros.rb +18 -0
- data/lib/faker/games/tarkov.rb +205 -0
- data/lib/faker/games/touhou.rb +75 -0
- data/lib/faker/games/warhammer_fantasy.rb +74 -0
- data/lib/faker/games/witcher.rb +93 -0
- data/lib/faker/games/world_of_warcraft.rb +44 -1
- data/lib/faker/games/zelda.rb +37 -1
- data/lib/faker/japanese_media/conan.rb +48 -0
- data/lib/faker/japanese_media/cowboy_bebop.rb +61 -0
- data/lib/faker/japanese_media/doraemon.rb +48 -0
- data/lib/faker/japanese_media/dragon_ball.rb +35 -0
- data/lib/faker/japanese_media/fullmetal_alchemist_brotherhood.rb +48 -0
- data/lib/faker/japanese_media/kamen_rider.rb +102 -0
- data/lib/faker/japanese_media/naruto.rb +61 -0
- data/lib/faker/japanese_media/one_piece.rb +55 -1
- data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
- data/lib/faker/japanese_media/sword_art_online.rb +36 -0
- data/lib/faker/locations/australia.rb +47 -0
- data/lib/faker/movies/avatar.rb +49 -0
- data/lib/faker/movies/back_to_the_future.rb +28 -0
- data/lib/faker/movies/departed.rb +49 -0
- data/lib/faker/movies/ghostbusters.rb +28 -0
- data/lib/faker/movies/hackers.rb +48 -0
- data/lib/faker/movies/harry_potter.rb +54 -0
- data/lib/faker/movies/hitchhikers_guide_to_the_galaxy.rb +69 -0
- data/lib/faker/movies/hobbit.rb +41 -4
- data/lib/faker/movies/how_to_train_your_dragon.rb +48 -0
- data/lib/faker/movies/lebowski.rb +27 -0
- data/lib/faker/movies/lord_of_the_rings.rb +31 -3
- data/lib/faker/movies/movie.rb +22 -0
- data/lib/faker/movies/princess_bride.rb +19 -0
- data/lib/faker/movies/room.rb +63 -0
- data/lib/faker/movies/star_wars.rb +170 -11
- data/lib/faker/movies/tron.rb +161 -0
- data/lib/faker/movies/v_for_vendetta.rb +29 -0
- data/lib/faker/music/grateful_dead.rb +18 -0
- data/lib/faker/music/hiphop.rb +48 -0
- data/lib/faker/music/music.rb +102 -4
- data/lib/faker/music/opera.rb +273 -1
- data/lib/faker/music/pearl_jam.rb +50 -0
- data/lib/faker/music/phish.rb +36 -1
- data/lib/faker/music/prince.rb +64 -0
- data/lib/faker/music/rock_band.rb +21 -0
- data/lib/faker/music/rush.rb +37 -0
- data/lib/faker/music/show.rb +49 -0
- data/lib/faker/music/smashing_pumpkins.rb +64 -0
- data/lib/faker/music/umphreys_mcgee.rb +9 -0
- data/lib/faker/quotes/chiquito.rb +80 -0
- data/lib/faker/quotes/quote.rb +93 -1
- data/lib/faker/quotes/rajnikanth.rb +27 -0
- data/lib/faker/quotes/shakespeare.rb +70 -0
- data/lib/faker/religion/bible.rb +50 -0
- data/lib/faker/sports/basketball.rb +36 -0
- data/lib/faker/sports/chess.rb +90 -0
- data/lib/faker/sports/football.rb +45 -0
- data/lib/faker/sports/mountaineering.rb +22 -0
- data/lib/faker/sports/sport.rb +116 -0
- data/lib/faker/sports/volleyball.rb +74 -0
- data/lib/faker/travel/airport.rb +43 -0
- data/lib/faker/travel/train_station.rb +54 -0
- data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +22 -0
- data/lib/faker/tv_shows/archer.rb +51 -0
- data/lib/faker/tv_shows/big_bang_theory.rb +37 -0
- data/lib/faker/tv_shows/bojack_horseman.rb +28 -0
- data/lib/faker/tv_shows/breaking_bad.rb +18 -0
- data/lib/faker/tv_shows/brooklyn_nine_nine.rb +38 -0
- data/lib/faker/tv_shows/buffy.rb +60 -2
- data/lib/faker/tv_shows/community.rb +19 -0
- data/lib/faker/tv_shows/dr_who.rb +78 -2
- data/lib/faker/tv_shows/dumb_and_dumber.rb +28 -0
- data/lib/faker/tv_shows/family_guy.rb +28 -0
- data/lib/faker/tv_shows/final_space.rb +51 -0
- data/lib/faker/tv_shows/friends.rb +27 -0
- data/lib/faker/tv_shows/futurama.rb +65 -0
- data/lib/faker/tv_shows/game_of_thrones.rb +46 -0
- data/lib/faker/tv_shows/hey_arnold.rb +27 -0
- data/lib/faker/tv_shows/how_i_met_your_mother.rb +37 -0
- data/lib/faker/tv_shows/michael_scott.rb +10 -0
- data/lib/faker/tv_shows/new_girl.rb +19 -0
- data/lib/faker/tv_shows/parks_and_rec.rb +18 -0
- data/lib/faker/tv_shows/rick_and_morty.rb +28 -0
- data/lib/faker/tv_shows/ru_paul.rb +18 -0
- data/lib/faker/tv_shows/seinfeld.rb +28 -0
- data/lib/faker/tv_shows/silicon_valley.rb +75 -0
- data/lib/faker/tv_shows/simpsons.rb +42 -0
- data/lib/faker/tv_shows/south_park.rb +34 -0
- data/lib/faker/tv_shows/spongebob.rb +50 -0
- data/lib/faker/tv_shows/star_trek.rb +36 -0
- data/lib/faker/tv_shows/stargate.rb +28 -0
- data/lib/faker/tv_shows/stranger_things.rb +19 -0
- data/lib/faker/tv_shows/suits.rb +37 -0
- data/lib/faker/tv_shows/supernatural.rb +48 -0
- data/lib/faker/tv_shows/the_expanse.rb +36 -0
- data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +43 -2
- data/lib/faker/tv_shows/the_it_crowd.rb +37 -0
- data/lib/faker/tv_shows/the_office.rb +37 -0
- data/lib/faker/tv_shows/the_thick_of_it.rb +28 -0
- data/lib/faker/tv_shows/twin_peaks.rb +28 -0
- data/lib/faker/tv_shows/venture_bros.rb +38 -0
- data/lib/faker/version.rb +2 -2
- data/lib/faker.rb +58 -58
- data/lib/helpers/base58.rb +1 -1
- data/lib/helpers/char.rb +22 -27
- data/lib/helpers/positional_generator.rb +480 -0
- data/lib/helpers/unique_generator.rb +17 -13
- data/lib/locales/README.md +18 -2
- data/lib/locales/ar.yml +6 -1
- data/lib/locales/bg.yml +3 -3
- data/lib/locales/ca.yml +0 -8
- data/lib/locales/da-DK.yml +6 -4
- data/lib/locales/de-AT.yml +7 -6
- data/lib/locales/de-CH.yml +6028 -9
- data/lib/locales/de.yml +12 -6
- data/lib/locales/en/address.yml +8 -3
- data/lib/locales/en/adjective.yml +179 -0
- data/lib/locales/en/airport.yml +381 -0
- data/lib/locales/en/animal.yml +1 -1
- data/lib/locales/en/aqua_teen_hunger_force.yml +33 -1
- data/lib/locales/en/archer.yml +75 -0
- data/lib/locales/en/australia.yml +107 -0
- data/lib/locales/en/avatar.yml +31 -0
- data/lib/locales/en/bank.yml +1 -1
- data/lib/locales/en/barcode.yml +24 -0
- data/lib/locales/en/bible.yml +90 -0
- data/lib/locales/en/big_bang_theory.yml +38 -0
- data/lib/locales/en/bird.yml +1281 -0
- data/lib/locales/en/blood.yml +13 -0
- data/lib/locales/en/book.yml +487 -3
- data/lib/locales/en/brooklyn_nine_nine.yml +35 -0
- data/lib/locales/en/buffy.yml +1 -1
- data/lib/locales/en/camera.yml +611 -0
- data/lib/locales/en/cat.yml +1 -1
- data/lib/locales/en/chess.yml +103 -0
- data/lib/locales/en/chiquito.yml +64 -0
- data/lib/locales/en/clash_of_clan.yml +101 -0
- data/lib/locales/en/coffee.yml +1 -1
- data/lib/locales/en/color.yml +1 -1
- data/lib/locales/en/commerce.yml +17 -0
- data/lib/locales/en/community.yml +17 -17
- data/lib/locales/en/company.yml +3 -2
- data/lib/locales/en/computer.yml +55 -0
- data/lib/locales/en/conan.yml +171 -0
- data/lib/locales/en/control.yml +247 -0
- data/lib/locales/en/cowboy_bebop.yml +163 -0
- data/lib/locales/en/demographic.yml +218 -5
- data/lib/locales/en/departed.yml +50 -0
- data/lib/locales/en/device.yml +112 -4
- data/lib/locales/en/dnd.yml +636 -0
- data/lib/locales/en/doraemon.yml +286 -0
- data/lib/locales/en/dota.yml +651 -63
- data/lib/locales/en/dr_who.yml +1 -1
- data/lib/locales/en/dragon_ball.yml +243 -1
- data/lib/locales/en/driving_license.yml +181 -0
- data/lib/locales/en/drone.yml +95 -0
- data/lib/locales/en/dune.yml +270 -131
- data/lib/locales/en/educator.yml +75 -6
- data/lib/locales/en/elder_scrolls.yml +583 -9
- data/lib/locales/en/emotion.yml +480 -0
- data/lib/locales/en/fallout.yml +311 -133
- data/lib/locales/en/file.yml +9 -1
- data/lib/locales/en/final_fantasy_xiv.yml +754 -0
- data/lib/locales/en/final_space.yml +37 -0
- data/lib/locales/en/finance.yml +77 -1
- data/lib/locales/en/fma_brotherhood.yml +78 -0
- data/lib/locales/en/food.yml +1066 -10
- data/lib/locales/en/football.yml +3 -3
- data/lib/locales/en/fresh_prince_of_bel_air.yml +1 -1
- data/lib/locales/en/futurama.yml +344 -0
- data/lib/locales/en/game.yml +11 -0
- data/lib/locales/en/gender.yml +1 -0
- data/lib/locales/en/hackers.yml +53 -0
- data/lib/locales/en/half_life.yml +84 -3
- data/lib/locales/en/heroes.yml +408 -3
- data/lib/locales/en/heroes_of_the_storm.yml +131 -4
- data/lib/locales/en/hobby.yml +171 -0
- data/lib/locales/en/horse.yml +2 -2
- data/lib/locales/en/house.yml +1 -1
- data/lib/locales/en/how_to_train_your_dragon.yml +174 -0
- data/lib/locales/en/internet.yml +140 -3
- data/lib/locales/en/jack_handey.yml +54 -0
- data/lib/locales/en/kamen_rider.yml +452 -0
- data/lib/locales/en/kpop.yml +7 -7
- data/lib/locales/en/league_of_legends.yml +285 -6
- data/lib/locales/en/lebowski.yml +1 -1
- data/lib/locales/en/lovecraft.yml +76 -6
- data/lib/locales/en/military.yml +179 -5
- data/lib/locales/en/minecraft.yml +663 -0
- data/lib/locales/en/mitch_hedberg.yml +46 -0
- data/lib/locales/en/mountain.yml +171 -0
- data/lib/locales/en/mountaineering.yml +14 -0
- data/lib/locales/en/movie.yml +194 -2
- data/lib/locales/en/music.yml +461 -29
- data/lib/locales/en/myst.yml +87 -31
- data/lib/locales/en/name.yml +6 -5
- data/lib/locales/en/naruto.yml +230 -0
- data/lib/locales/en/one_piece.yml +2 -2
- data/lib/locales/en/opera.yml +169 -1
- data/lib/locales/en/overwatch.yml +2648 -37
- data/lib/locales/en/pearl_jam.yml +213 -0
- data/lib/locales/en/phish.yml +392 -1
- data/lib/locales/en/phone_number.yml +1 -1
- data/lib/locales/en/pokemon.yml +417 -4
- data/lib/locales/en/prince.yml +227 -0
- data/lib/locales/en/quote.yml +692 -163
- data/lib/locales/en/rajnikanth.yml +77 -0
- data/lib/locales/en/rock_band.yml +1 -0
- data/lib/locales/en/room.yml +68 -0
- data/lib/locales/en/rush.yml +32 -0
- data/lib/locales/en/science.yml +481 -3
- data/lib/locales/en/shakespeare.yml +23 -26
- data/lib/locales/en/show.yml +597 -0
- data/lib/locales/en/simpsons.yml +668 -0
- data/lib/locales/en/smashing_pumpkins.yml +382 -0
- data/lib/locales/en/source.yml +35 -0
- data/lib/locales/en/south_park.yml +360 -2
- data/lib/locales/en/space.yml +1 -1
- data/lib/locales/en/spongebob.yml +489 -0
- data/lib/locales/en/sport.yml +130 -0
- data/lib/locales/en/star_trek.yml +1 -1
- data/lib/locales/en/star_wars.yml +568 -220
- data/lib/locales/en/stranger_thing.yml +1 -1
- data/lib/locales/en/street_fighter.yml +1524 -0
- data/lib/locales/en/stripe.yml +3 -3
- data/lib/locales/en/studio_ghibli.yml +107 -0
- data/lib/locales/en/suits.yml +45 -0
- data/lib/locales/en/super_mario.yml +58 -0
- data/lib/locales/en/super_smash_bros.yml +23 -5
- data/lib/locales/en/supernatural.yml +141 -0
- data/lib/locales/en/tarkov.yml +593 -0
- data/lib/locales/en/tea.yml +172 -0
- data/lib/locales/en/the_kingkiller_chronicle.yml +56 -0
- data/lib/locales/en/the_office.yml +86 -0
- data/lib/locales/en/tolkien.yml +2453 -0
- data/lib/locales/en/touhou.yml +839 -0
- data/lib/locales/en/train_station.yml +280 -0
- data/lib/locales/en/tron.yml +227 -0
- data/lib/locales/en/vehicle.yml +2809 -75
- data/lib/locales/en/volleyball.yml +501 -0
- data/lib/locales/en/warhammer_fantasy.yml +582 -0
- data/lib/locales/en/witcher.yml +426 -7
- data/lib/locales/en/world_of_warcraft.yml +122 -4
- data/lib/locales/en/zelda.yml +962 -4
- data/lib/locales/en-AU.yml +50 -10
- data/lib/locales/en-CA.yml +5 -1
- data/lib/locales/en-GB.yml +3 -2
- data/lib/locales/en-IND.yml +2 -1
- data/lib/locales/en-MS.yml +3 -1
- data/lib/locales/en-NEP.yml +5 -2
- data/lib/locales/en-NG.yml +1 -0
- data/lib/locales/en-NZ.yml +135 -8
- data/lib/locales/en-PAK.yml +3 -1
- data/lib/locales/en-SG.yml +3 -1
- data/lib/locales/en-TH.yml +360 -0
- data/lib/locales/en-UG.yml +1 -0
- data/lib/locales/en-US.yml +38 -12
- data/lib/locales/en-ZA.yml +2 -2
- data/lib/locales/en-au-ocker.yml +4 -1
- data/lib/locales/en.yml +0 -3
- data/lib/locales/es-AR.yml +4601 -0
- data/lib/locales/es-MX.yml +4 -1
- data/lib/locales/es.yml +58 -2
- data/lib/locales/fa.yml +2 -0
- data/lib/locales/fi-FI.yml +4 -2
- data/lib/locales/fr/address.yml +20 -0
- data/lib/locales/fr/adjective.yml +266 -0
- data/lib/locales/fr/ancient.yml +141 -0
- data/lib/locales/fr/animal.yml +5 -0
- data/lib/locales/fr/appliance.yml +4 -0
- data/lib/locales/fr/book.yml +7 -0
- data/lib/locales/fr/color.yml +4 -0
- data/lib/locales/fr/company.yml +17 -0
- data/lib/locales/fr/compass.yml +23 -0
- data/lib/locales/fr/demographic.yml +4 -0
- data/lib/locales/fr/gender.yml +6 -0
- data/lib/locales/fr/internet.yml +5 -0
- data/lib/locales/fr/lorem.yml +5 -0
- data/lib/locales/fr/measurement.yml +7 -0
- data/lib/locales/fr/name.yml +22 -0
- data/lib/locales/fr/phone_number.yml +7 -0
- data/lib/locales/fr/pokemon.yml +7 -0
- data/lib/locales/fr-CA.yml +28 -11
- data/lib/locales/fr-CH.yml +3 -3
- data/lib/locales/fr.yml +1 -112
- data/lib/locales/hy.yml +3 -7
- data/lib/locales/id.yml +5 -2
- data/lib/locales/it.yml +3 -1
- data/lib/locales/ja/README.md +13 -0
- data/lib/locales/ja/address.yml +120539 -0
- data/lib/locales/ja/adjective.yml +148 -0
- data/lib/locales/ja/ancient.yml +4 -0
- data/lib/locales/ja/animal.yml +5 -0
- data/lib/locales/ja/bank.yml +4 -0
- data/lib/locales/ja/book.yml +7 -0
- data/lib/locales/ja/cat.yml +5 -0
- data/lib/locales/ja/coffee.yml +4 -0
- data/lib/locales/ja/color.yml +4 -0
- data/lib/locales/ja/commerce.yml +11 -0
- data/lib/locales/ja/company.yml +8 -0
- data/lib/locales/ja/dog.yml +6 -0
- data/lib/locales/ja/emotion.yml +51 -0
- data/lib/locales/ja/food.yml +4 -0
- data/lib/locales/ja/gender.yml +4 -0
- data/lib/locales/ja/lorem.yml +9 -0
- data/lib/locales/ja/name.yml +13 -0
- data/lib/locales/ja/naruto.yml +230 -0
- data/lib/locales/ja/overwatch.yml +5 -0
- data/lib/locales/ja/phone_number.yml +7 -0
- data/lib/locales/ja/pokemon.yml +7 -0
- data/lib/locales/ja/relationship.yml +10 -0
- data/lib/locales/ja/restaurant.yml +11 -0
- data/lib/locales/ja/space.yml +5 -0
- data/lib/locales/ja/sport.yml +130 -0
- data/lib/locales/ja/studio_ghibli.yml +112 -0
- data/lib/locales/ja/subscription.yml +8 -0
- data/lib/locales/ja/super_mario.yml +9 -0
- data/lib/locales/ja/super_smash_bros.yml +8 -0
- data/lib/locales/ja/touhou.yml +466 -0
- data/lib/locales/ja/university.yml +9 -0
- data/lib/locales/ja/zelda.yml +5 -0
- data/lib/locales/ko.yml +95 -2
- data/lib/locales/lt.yml +34 -0
- data/lib/locales/lv.yml +1 -1
- data/lib/locales/mi-NZ.yml +283 -0
- data/lib/locales/nb-NO.yml +5 -2
- data/lib/locales/nl.yml +1 -0
- data/lib/locales/pl.yml +2 -2
- data/lib/locales/pt-BR.yml +33 -4
- data/lib/locales/pt.yml +6 -4
- data/lib/locales/ru.yml +43 -1
- data/lib/locales/sk.yml +5 -2
- data/lib/locales/sv.yml +1 -0
- data/lib/locales/th.yml +380 -0
- data/lib/locales/tr.yml +1 -0
- data/lib/locales/uk.yml +10 -5
- data/lib/locales/vi.yml +1 -0
- data/lib/locales/zh-CN/bank.yml +17 -0
- data/lib/locales/zh-CN.yml +2 -1
- data/lib/locales/zh-TW.yml +2 -1
- metadata +201 -109
- data/lib/faker/default/fillmurray.rb +0 -30
- data/lib/faker/default/lorem_pixel.rb +0 -63
- data/lib/locales/en/hobbit.yml +0 -19
- data/lib/locales/en/lord_of_the_rings.yml +0 -6
- data/lib/locales/ja.yml +0 -98
data/lib/faker/default/date.rb
CHANGED
|
@@ -2,39 +2,46 @@
|
|
|
2
2
|
|
|
3
3
|
module Faker
|
|
4
4
|
class Date < Base
|
|
5
|
-
|
|
6
|
-
def between(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from:, to:)
|
|
7
|
-
if legacy_from != NOT_GIVEN
|
|
8
|
-
warn_with_uplevel 'Passing `from` with the 1st argument of `Date.between` is deprecated. Use keyword argument like `Date.between(from: ...)` instead.', uplevel: 1
|
|
9
|
-
from = legacy_from
|
|
10
|
-
end
|
|
11
|
-
if legacy_to != NOT_GIVEN
|
|
12
|
-
warn_with_uplevel 'Passing `to` with the 2nd argument of `Date.between` is deprecated. Use keyword argument like `Date.between(to: ...)` instead.', uplevel: 1
|
|
13
|
-
to = legacy_to
|
|
14
|
-
end
|
|
5
|
+
DAYS_OF_WEEK = %i[sunday monday tuesday wednesday thursday friday saturday].freeze
|
|
15
6
|
|
|
7
|
+
class << self
|
|
8
|
+
##
|
|
9
|
+
# Produce a random date between two dates.
|
|
10
|
+
#
|
|
11
|
+
# @param from [Date, String] The start of the usable date range.
|
|
12
|
+
# @param to [Date, String] The end of the usable date range.
|
|
13
|
+
# @return [Date]
|
|
14
|
+
#
|
|
15
|
+
# @example if used with or without Rails (Active Support)
|
|
16
|
+
# Faker::Date.between(from: '2014-09-23', to: '2014-09-25') #=> #<Date: 2014-09-24>
|
|
17
|
+
#
|
|
18
|
+
# @example if used with Rails (Active Support)
|
|
19
|
+
# Faker::Date.between(from: 2.days.ago, to: Date.today) #=> #<Date: 2014-09-24>
|
|
20
|
+
#
|
|
21
|
+
# @faker.version 1.0.0
|
|
22
|
+
def between(from:, to:)
|
|
16
23
|
from = get_date_object(from)
|
|
17
24
|
to = get_date_object(to)
|
|
18
25
|
|
|
19
26
|
Faker::Base.rand_in_range(from, to)
|
|
20
27
|
end
|
|
21
28
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
29
|
+
##
|
|
30
|
+
# Produce a random date between two dates.
|
|
31
|
+
#
|
|
32
|
+
# @param from [Date, String] The start of the usable date range.
|
|
33
|
+
# @param to [Date, String] The end of the usable date range.
|
|
34
|
+
# @param excepted [Date, String] A date to exclude.
|
|
35
|
+
# @return [Date]
|
|
36
|
+
#
|
|
37
|
+
# @example if used with or without Rails (Active Support)
|
|
38
|
+
# Faker::Date.between_except(from: '2014-09-23', to: '2015-09-25', excepted: '2015-01-24') #=> #<Date: 2014-10-03>
|
|
39
|
+
#
|
|
40
|
+
# @example if used with Rails (Active Support)
|
|
41
|
+
# Faker::Date.between_except(from: 1.year.ago, to: 1.year.from_now, excepted: Date.today) #=> #<Date: 2014-10-03>
|
|
42
|
+
#
|
|
43
|
+
# @faker.version 1.6.2
|
|
44
|
+
def between_except(from:, to:, excepted:)
|
|
38
45
|
raise ArgumentError, 'From date, to date and excepted date must not be the same' if from == to && to == excepted
|
|
39
46
|
|
|
40
47
|
excepted = get_date_object(excepted)
|
|
@@ -45,40 +52,60 @@ module Faker
|
|
|
45
52
|
end
|
|
46
53
|
end
|
|
47
54
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
##
|
|
56
|
+
# Produce a random date in the future (up to N days).
|
|
57
|
+
#
|
|
58
|
+
# @param from [Integer] The start of the usable forward date range.
|
|
59
|
+
# @param days [Integer] The maximum number of days to go into the future.
|
|
60
|
+
# @return [Date]
|
|
61
|
+
#
|
|
62
|
+
# @example if used with or without Rails (Active Support)
|
|
63
|
+
# Faker::Date.forward(days: 23) #=> #<Date: 2014-10-03>
|
|
64
|
+
#
|
|
65
|
+
# @example if used with Rails (Active Support)
|
|
66
|
+
# Faker::Date.forward(from: Date.current, days: 17) #=> #<Date: 2022-06-22>
|
|
67
|
+
#
|
|
68
|
+
# @example if used with or without Rails (Active Support)
|
|
69
|
+
# Faker::Date.forward(from: '2022-06-03', days: 10) #=> #<Date: 2022-10-13>
|
|
70
|
+
#
|
|
71
|
+
# @faker.version 1.0.0
|
|
72
|
+
def forward(from: ::Date.today, days: 365)
|
|
73
|
+
start_date = get_date_object(from)
|
|
74
|
+
since = start_date + 1
|
|
75
|
+
to = start_date + days
|
|
76
|
+
|
|
77
|
+
between(from: since, to: to).to_date
|
|
58
78
|
end
|
|
59
79
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
80
|
+
##
|
|
81
|
+
# Produce a random date in the past (up to N days).
|
|
82
|
+
#
|
|
83
|
+
# @param days [Integer] The maximum number of days to go into the past.
|
|
84
|
+
# @return [Date]
|
|
85
|
+
#
|
|
86
|
+
# @example
|
|
87
|
+
# Faker::Date.backward(days: 14) #=> #<Date: 2019-09-12>
|
|
88
|
+
#
|
|
89
|
+
# @faker.version 1.0.0
|
|
90
|
+
def backward(days: 365)
|
|
66
91
|
from = ::Date.today - days
|
|
67
92
|
to = ::Date.today - 1
|
|
68
93
|
|
|
69
94
|
between(from: from, to: to).to_date
|
|
70
95
|
end
|
|
71
96
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
97
|
+
##
|
|
98
|
+
# Produce a random date in the past (up to N days).
|
|
99
|
+
#
|
|
100
|
+
# @param min_age [Integer] The minimum age that the birthday would imply.
|
|
101
|
+
# @param max_age [Integer] The maximum age that the birthday would imply.
|
|
102
|
+
# @return [Date]
|
|
103
|
+
#
|
|
104
|
+
# @example
|
|
105
|
+
# Faker::Date.birthday(min_age: 18, max_age: 65) #=> #<Date: 1986-03-28>
|
|
106
|
+
#
|
|
107
|
+
# @faker.version 1.4.3
|
|
108
|
+
def birthday(min_age: 18, max_age: 65)
|
|
82
109
|
t = ::Date.today
|
|
83
110
|
|
|
84
111
|
from = birthday_date(t, max_age)
|
|
@@ -87,6 +114,76 @@ module Faker
|
|
|
87
114
|
between(from: from, to: to).to_date
|
|
88
115
|
end
|
|
89
116
|
|
|
117
|
+
##
|
|
118
|
+
# Produces a date in the year and/or month specified.
|
|
119
|
+
#
|
|
120
|
+
# @param month [Integer] represents the month of the date
|
|
121
|
+
# @param year [Integer] represents the year of the date
|
|
122
|
+
# @return [Date]
|
|
123
|
+
#
|
|
124
|
+
# @example
|
|
125
|
+
# Faker::Date.in_date_period #=> #<Date: 2019-09-01>
|
|
126
|
+
#
|
|
127
|
+
# @example
|
|
128
|
+
# Faker::Date.in_date_period(year: 2018, month: 2) #=> #<Date: 2018-02-26>
|
|
129
|
+
#
|
|
130
|
+
# @example
|
|
131
|
+
# Faker::Date.in_date_period(month: 2) #=> #<Date: 2019-02-26>
|
|
132
|
+
#
|
|
133
|
+
# @faker.version 2.13.0
|
|
134
|
+
def in_date_period(month: nil, year: ::Date.today.year)
|
|
135
|
+
from = ::Date.new(year, month || 1, 1)
|
|
136
|
+
to = ::Date.new(year, month || 12, ::Date.civil(year, month || 12, -1).day)
|
|
137
|
+
|
|
138
|
+
between(from: from, to: to).to_date
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
##
|
|
142
|
+
# Produce a random date at given day(s) of the week between two dates.
|
|
143
|
+
#
|
|
144
|
+
# @param day [Symbol, Array<Symbol>] # The day(s) of the week. See {DAYS_OF_WEEK}.
|
|
145
|
+
# @param from [Date, String] The start of the usable date range.
|
|
146
|
+
# @param to [Date, String] The end of the usable date range.
|
|
147
|
+
# @return [Date]
|
|
148
|
+
#
|
|
149
|
+
# @example if used with or without Rails (Active Support)
|
|
150
|
+
# Faker::Date.on_day_of_week_between(day: :tuesday, from: '2023-01-01', to: '2023-02-01') #=> #<Date: 2032-01-10>
|
|
151
|
+
#
|
|
152
|
+
# @example if used with Rails (Active Support)
|
|
153
|
+
# Faker::Date.on_day_of_week_between(day: [:saturday, :sunday], from: 1.month.ago, to: Date.today) #=> #<Date: 2014-09-24>
|
|
154
|
+
#
|
|
155
|
+
# @faker.version next
|
|
156
|
+
def on_day_of_week_between(day:, from:, to:)
|
|
157
|
+
days = [day].flatten
|
|
158
|
+
raise ArgumentError, 'Day of week cannot be empty' if days.empty?
|
|
159
|
+
|
|
160
|
+
# Convert given days of the week to numbers used by `Date#wday` method
|
|
161
|
+
numeric_weekdays = days.map do |d|
|
|
162
|
+
DAYS_OF_WEEK.index(d.to_sym.downcase) || raise(ArgumentError, "#{d} is not a valid day of the week")
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
from = get_date_object(from)
|
|
166
|
+
to = get_date_object(to)
|
|
167
|
+
date = Faker::Base.rand_in_range(from, to)
|
|
168
|
+
|
|
169
|
+
# If the initial date is not on one of the wanted days of the week...
|
|
170
|
+
unless numeric_weekdays.include? date.wday
|
|
171
|
+
# ...pick a date nearby that is on one of the wanted days of the week instead
|
|
172
|
+
date += sample(numeric_weekdays) - date.wday
|
|
173
|
+
|
|
174
|
+
# Move date 1 week earlier or later if the adjusted date is now outside the date range
|
|
175
|
+
date += 7 if date < from
|
|
176
|
+
date -= 7 if date > to
|
|
177
|
+
|
|
178
|
+
if date > to || date < from
|
|
179
|
+
raise ArgumentError,
|
|
180
|
+
"There is no #{DAYS_OF_WEEK[date.wday].capitalize} between #{from} and #{to}. Increase the from/to date range or choose a different day of the week."
|
|
181
|
+
end
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
date
|
|
185
|
+
end
|
|
186
|
+
|
|
90
187
|
private
|
|
91
188
|
|
|
92
189
|
def birthday_date(date, age)
|
|
@@ -2,22 +2,67 @@
|
|
|
2
2
|
|
|
3
3
|
module Faker
|
|
4
4
|
class DcComics < Base
|
|
5
|
+
##
|
|
6
|
+
# Produces a hero name from DC Comics
|
|
7
|
+
#
|
|
8
|
+
# @return [String]
|
|
9
|
+
#
|
|
10
|
+
# @example
|
|
11
|
+
# Faker::DcComics.hero #=> "Batman"
|
|
12
|
+
#
|
|
13
|
+
# @faker.version 1.9.2
|
|
5
14
|
def self.hero
|
|
6
15
|
fetch('dc_comics.hero')
|
|
7
16
|
end
|
|
8
17
|
|
|
18
|
+
##
|
|
19
|
+
# Produces a heroine name from DC Comics
|
|
20
|
+
#
|
|
21
|
+
# @return [String]
|
|
22
|
+
#
|
|
23
|
+
# @example
|
|
24
|
+
# Faker::DcComics.heroine #=> "Supergirl"
|
|
25
|
+
#
|
|
26
|
+
# @faker.version 1.9.2
|
|
9
27
|
def self.heroine
|
|
10
28
|
fetch('dc_comics.heroine')
|
|
11
29
|
end
|
|
12
30
|
|
|
31
|
+
##
|
|
32
|
+
# Produces a villain name from DC Comics
|
|
33
|
+
#
|
|
34
|
+
# @return [String]
|
|
35
|
+
#
|
|
36
|
+
# @example
|
|
37
|
+
# Faker::DcComics.villain #=> "The Joker"
|
|
38
|
+
#
|
|
39
|
+
# @faker.version 1.9.2
|
|
13
40
|
def self.villain
|
|
14
41
|
fetch('dc_comics.villain')
|
|
15
42
|
end
|
|
16
43
|
|
|
44
|
+
##
|
|
45
|
+
# Produces a character name from DC Comics
|
|
46
|
+
#
|
|
47
|
+
# @return [String]
|
|
48
|
+
#
|
|
49
|
+
# @example
|
|
50
|
+
# Faker::DcComics.name #=> "Clark Kent"
|
|
51
|
+
#
|
|
52
|
+
# @faker.version 1.9.2
|
|
17
53
|
def self.name
|
|
18
54
|
fetch('dc_comics.name')
|
|
19
55
|
end
|
|
20
56
|
|
|
57
|
+
##
|
|
58
|
+
# Produces a comic book title from DC Comics
|
|
59
|
+
#
|
|
60
|
+
# @return [String]
|
|
61
|
+
#
|
|
62
|
+
# @example
|
|
63
|
+
# Faker::DcComics.title #=> "Batman: The Long Halloween"
|
|
64
|
+
#
|
|
65
|
+
# @faker.version 1.9.2
|
|
21
66
|
def self.title
|
|
22
67
|
fetch('dc_comics.title')
|
|
23
68
|
end
|
|
@@ -3,32 +3,84 @@
|
|
|
3
3
|
module Faker
|
|
4
4
|
class Demographic < Base
|
|
5
5
|
class << self
|
|
6
|
+
##
|
|
7
|
+
# Produces the name of a race.
|
|
8
|
+
#
|
|
9
|
+
# @return [String]
|
|
10
|
+
#
|
|
11
|
+
# @example
|
|
12
|
+
# Faker::Demographic.race #=> "Native Hawaiian or Other Pacific Islander"
|
|
13
|
+
#
|
|
14
|
+
# @faker.version 1.7.3
|
|
6
15
|
def race
|
|
7
16
|
fetch('demographic.race')
|
|
8
17
|
end
|
|
9
18
|
|
|
19
|
+
##
|
|
20
|
+
# Produces a level of educational attainment.
|
|
21
|
+
#
|
|
22
|
+
# @return [String]
|
|
23
|
+
#
|
|
24
|
+
# @example
|
|
25
|
+
# Faker::Demographic.educational_attainment #=> "GED or alternative credential"
|
|
26
|
+
#
|
|
27
|
+
# @faker.version 1.7.3
|
|
10
28
|
def educational_attainment
|
|
11
29
|
fetch('demographic.educational_attainment')
|
|
12
30
|
end
|
|
13
31
|
|
|
32
|
+
##
|
|
33
|
+
# Produces a denonym.
|
|
34
|
+
#
|
|
35
|
+
# @return [String]
|
|
36
|
+
#
|
|
37
|
+
# @example
|
|
38
|
+
# Faker::Demographic.denonym #=> "Panamanian"
|
|
39
|
+
#
|
|
40
|
+
# @faker.version 1.7.3
|
|
14
41
|
def demonym
|
|
15
42
|
fetch('demographic.demonym')
|
|
16
43
|
end
|
|
17
44
|
|
|
45
|
+
##
|
|
46
|
+
# Produces a marital status.
|
|
47
|
+
#
|
|
48
|
+
# @return [String]
|
|
49
|
+
#
|
|
50
|
+
# @example
|
|
51
|
+
# Faker::Demographic.marital_status #=> "Widowed"
|
|
52
|
+
#
|
|
53
|
+
# @faker.version 1.7.3
|
|
18
54
|
def marital_status
|
|
19
55
|
fetch('demographic.marital_status')
|
|
20
56
|
end
|
|
21
57
|
|
|
58
|
+
##
|
|
59
|
+
# Produces a sex for demographic purposes.
|
|
60
|
+
#
|
|
61
|
+
# @return [String]
|
|
62
|
+
#
|
|
63
|
+
# @example
|
|
64
|
+
# Faker::Demographic.sex #=> "Female"
|
|
65
|
+
#
|
|
66
|
+
# @faker.version 1.7.3
|
|
22
67
|
def sex
|
|
23
68
|
fetch('demographic.sex')
|
|
24
69
|
end
|
|
25
70
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
71
|
+
##
|
|
72
|
+
# Produces a height as a string.
|
|
73
|
+
#
|
|
74
|
+
# @param unit [Symbol] either `:metric` or `imperial`.
|
|
75
|
+
# @return [String]
|
|
76
|
+
#
|
|
77
|
+
# @example
|
|
78
|
+
# Faker::Demographic.height #=> "1.61"
|
|
79
|
+
# @example
|
|
80
|
+
# Faker::Demographic.height(unit: :imperial) #=> "6 ft, 2 in"
|
|
81
|
+
#
|
|
82
|
+
# @faker.version 1.7.3
|
|
83
|
+
def height(unit: :metric)
|
|
32
84
|
case unit
|
|
33
85
|
when :imperial
|
|
34
86
|
inches = rand_in_range(57, 86)
|
|
@@ -5,14 +5,41 @@ module Faker
|
|
|
5
5
|
flexible :dessert
|
|
6
6
|
|
|
7
7
|
class << self
|
|
8
|
+
##
|
|
9
|
+
# Produces the name of a dessert variety.
|
|
10
|
+
#
|
|
11
|
+
# @return [String]
|
|
12
|
+
#
|
|
13
|
+
# @example
|
|
14
|
+
# Faker::Dessert.variety #=> "Cake"
|
|
15
|
+
#
|
|
16
|
+
# @faker.version 1.8.0
|
|
8
17
|
def variety
|
|
9
18
|
fetch('dessert.variety')
|
|
10
19
|
end
|
|
11
20
|
|
|
21
|
+
##
|
|
22
|
+
# Produces the name of a dessert topping.
|
|
23
|
+
#
|
|
24
|
+
# @return [String]
|
|
25
|
+
#
|
|
26
|
+
# @example
|
|
27
|
+
# Faker::Dessert.topping #=> "Gummy Bears"
|
|
28
|
+
#
|
|
29
|
+
# @faker.version 1.8.0
|
|
12
30
|
def topping
|
|
13
31
|
fetch('dessert.topping')
|
|
14
32
|
end
|
|
15
33
|
|
|
34
|
+
##
|
|
35
|
+
# Produces the name of a dessert flavor.
|
|
36
|
+
#
|
|
37
|
+
# @return [String]
|
|
38
|
+
#
|
|
39
|
+
# @example
|
|
40
|
+
# Faker::Dessert.flavor #=> "Salted Caramel"
|
|
41
|
+
#
|
|
42
|
+
# @faker.version 1.8.0
|
|
16
43
|
def flavor
|
|
17
44
|
fetch('dessert.flavor')
|
|
18
45
|
end
|
data/lib/faker/default/device.rb
CHANGED
|
@@ -3,26 +3,80 @@
|
|
|
3
3
|
module Faker
|
|
4
4
|
class Device < Base
|
|
5
5
|
class << self
|
|
6
|
+
##
|
|
7
|
+
# Produces a build number between 1 and 500.
|
|
8
|
+
#
|
|
9
|
+
# @return [Integer]
|
|
10
|
+
#
|
|
11
|
+
# @example
|
|
12
|
+
# Faker::Device.build_number #=> 5
|
|
13
|
+
#
|
|
14
|
+
# @faker.version 1.9.0
|
|
6
15
|
def build_number
|
|
7
16
|
Faker::Number.between(from: 1, to: 500)
|
|
8
17
|
end
|
|
9
18
|
|
|
19
|
+
##
|
|
20
|
+
# Produces the name of a manufacturer for a device.
|
|
21
|
+
#
|
|
22
|
+
# @return [String]
|
|
23
|
+
#
|
|
24
|
+
# @example
|
|
25
|
+
# Faker::Device.manufacturer #=> "Apple"
|
|
26
|
+
#
|
|
27
|
+
# @faker.version 1.9.0
|
|
10
28
|
def manufacturer
|
|
11
29
|
fetch('device.manufacturer')
|
|
12
30
|
end
|
|
13
31
|
|
|
32
|
+
##
|
|
33
|
+
# Produces a model name for a device.
|
|
34
|
+
#
|
|
35
|
+
# @return [String]
|
|
36
|
+
#
|
|
37
|
+
# @example
|
|
38
|
+
# Faker::Device.model_name #=> "iPhone 4"
|
|
39
|
+
#
|
|
40
|
+
# @faker.version 1.9.0
|
|
14
41
|
def model_name
|
|
15
42
|
fetch('device.model_name')
|
|
16
43
|
end
|
|
17
44
|
|
|
45
|
+
##
|
|
46
|
+
# Produces the name of a platform for a device.
|
|
47
|
+
#
|
|
48
|
+
# @return [String]
|
|
49
|
+
#
|
|
50
|
+
# @example
|
|
51
|
+
# Faker::Device.platform #=> "webOS"
|
|
52
|
+
#
|
|
53
|
+
# @faker.version 1.9.0
|
|
18
54
|
def platform
|
|
19
55
|
fetch('device.platform')
|
|
20
56
|
end
|
|
21
57
|
|
|
58
|
+
##
|
|
59
|
+
# Produces a serial code for a device.
|
|
60
|
+
#
|
|
61
|
+
# @return [String]
|
|
62
|
+
#
|
|
63
|
+
# @example
|
|
64
|
+
# Faker::Device.serial #=> "ejfjnRNInxh0363JC2WM"
|
|
65
|
+
#
|
|
66
|
+
# @faker.version 1.9.0
|
|
22
67
|
def serial
|
|
23
68
|
fetch('device.serial')
|
|
24
69
|
end
|
|
25
70
|
|
|
71
|
+
##
|
|
72
|
+
# Produces a version number between 1 and 1000.
|
|
73
|
+
#
|
|
74
|
+
# @return [Integer]
|
|
75
|
+
#
|
|
76
|
+
# @example
|
|
77
|
+
# Faker::Device.version #=> 42
|
|
78
|
+
#
|
|
79
|
+
# @faker.version 1.9.0
|
|
26
80
|
def version
|
|
27
81
|
Faker::Number.between(from: 1, to: 1000)
|
|
28
82
|
end
|
|
@@ -6,26 +6,24 @@ module Faker
|
|
|
6
6
|
NI_CHANCE = 0.03 # NI Pop is about 3% of total UK population
|
|
7
7
|
|
|
8
8
|
class << self
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
end
|
|
28
|
-
|
|
9
|
+
##
|
|
10
|
+
# Produces a random British driving licence number.
|
|
11
|
+
#
|
|
12
|
+
# @param last_name [String] The last name of the driving licence's owner.
|
|
13
|
+
# @param initials [String] The initials of the driving licence's owner.
|
|
14
|
+
# @param gender [String] The gender of the driving licence's owner.
|
|
15
|
+
# @param date_of_birth [String] The date of birth of the driving licence's owner.
|
|
16
|
+
# @return [String]
|
|
17
|
+
#
|
|
18
|
+
# @example
|
|
19
|
+
# Faker::DrivingLicence.british_driving_licence #=> "MCDER712081VF7EK"
|
|
20
|
+
# Faker::DrivingLicence.british_driving_licence(last_name: "O'Carroll",
|
|
21
|
+
# initials: "J",
|
|
22
|
+
# gender: :female,
|
|
23
|
+
# date_of_birth: Date.parse("1986-10-24")) #=> "OCARR815246J91HT"
|
|
24
|
+
#
|
|
25
|
+
# @faker.version 1.9.2
|
|
26
|
+
def british_driving_licence(last_name: Faker::Name.last_name, initials: Faker::Name.initials, gender: random_gender, date_of_birth: Faker::Date.birthday(min_age: 18, max_age: 65))
|
|
29
27
|
[
|
|
30
28
|
gb_licence_padding(last_name, 5),
|
|
31
29
|
gb_licence_year(date_of_birth, gender),
|
|
@@ -34,10 +32,35 @@ module Faker
|
|
|
34
32
|
].join
|
|
35
33
|
end
|
|
36
34
|
|
|
35
|
+
##
|
|
36
|
+
# Produces a random Northern Irish licence number.
|
|
37
|
+
#
|
|
38
|
+
# @return [String]
|
|
39
|
+
#
|
|
40
|
+
# @example
|
|
41
|
+
# Faker::DrivingLicence.northern_irish_driving_licence #=> "70702548"
|
|
42
|
+
#
|
|
43
|
+
# @faker.version 1.9.2
|
|
37
44
|
def northern_irish_driving_licence
|
|
38
45
|
Faker::Number.number(digits: 8).to_s
|
|
39
46
|
end
|
|
40
47
|
|
|
48
|
+
##
|
|
49
|
+
# Produces a random UK driving licence number in either GB or NI format, at a rate consistent with their relative populations
|
|
50
|
+
#
|
|
51
|
+
# @overload uk_driving_licence(last_name, initials, gender, date_of_birth)
|
|
52
|
+
# @param last_name [String] The last name of the driving licence's owner.
|
|
53
|
+
# @param initials [String] The initials of the driving licence's owner.
|
|
54
|
+
# @param gender [String] The gender of the driving licence's owner.
|
|
55
|
+
# @param date_of_birth [String] The date of birth of the driving licence's owner.
|
|
56
|
+
# @overload uk_driving_licence()
|
|
57
|
+
# @return [String]
|
|
58
|
+
#
|
|
59
|
+
# @example
|
|
60
|
+
# Faker::DrivingLicence.uk_driving_licence #=> "OCARR815246J91HT"
|
|
61
|
+
# Faker::DrivingLicence.uk_driving_licence #=> "70702548"
|
|
62
|
+
#
|
|
63
|
+
# @faker.version 1.9.2
|
|
41
64
|
def uk_driving_licence(*args)
|
|
42
65
|
if Faker::Config.random.rand < NI_CHANCE
|
|
43
66
|
northern_irish_driving_licence
|
|
@@ -46,6 +69,23 @@ module Faker
|
|
|
46
69
|
end
|
|
47
70
|
end
|
|
48
71
|
|
|
72
|
+
##
|
|
73
|
+
# Produces a random USA driving licence number by state code passed.
|
|
74
|
+
#
|
|
75
|
+
# @return [String]
|
|
76
|
+
#
|
|
77
|
+
# @example
|
|
78
|
+
# Faker::DrivingLicence.usa_driving_licence #=> "V5598249"
|
|
79
|
+
# Faker::DrivingLicence.usa_driving_licence('new mexico') #=> "270692028"
|
|
80
|
+
# Faker::DrivingLicence.usa_driving_licence('New Mexico') #=> "68178637"
|
|
81
|
+
#
|
|
82
|
+
# @faker.version 2.14.0
|
|
83
|
+
def usa_driving_licence(state = 'California')
|
|
84
|
+
bothify(fetch("driving_licence.usa.#{state.to_s.strip.downcase.gsub(' ', '_')}"))
|
|
85
|
+
rescue I18n::MissingTranslationData => _e
|
|
86
|
+
raise InvalidStatePassed, "Invalid state code passed for USA, '#{state}'"
|
|
87
|
+
end
|
|
88
|
+
|
|
49
89
|
private
|
|
50
90
|
|
|
51
91
|
def random_gender
|
|
@@ -58,18 +98,35 @@ module Faker
|
|
|
58
98
|
end
|
|
59
99
|
|
|
60
100
|
def gb_licence_year(dob, gender)
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
101
|
+
generate(:string) do |g|
|
|
102
|
+
g.computed do
|
|
103
|
+
(dob.year / 10) % 10
|
|
104
|
+
end
|
|
105
|
+
g.computed do
|
|
106
|
+
gender_marker = gender == :female ? 50 : 0
|
|
107
|
+
format('%02d', (dob.month + gender_marker))
|
|
108
|
+
end
|
|
109
|
+
g.computed do
|
|
110
|
+
format('%02d', dob.day)
|
|
111
|
+
end
|
|
112
|
+
g.computed do
|
|
113
|
+
dob.year % 10
|
|
114
|
+
end
|
|
115
|
+
end
|
|
68
116
|
end
|
|
69
117
|
|
|
70
118
|
def gb_licence_checksum
|
|
71
|
-
|
|
119
|
+
generate(:string) do |g|
|
|
120
|
+
g.int
|
|
121
|
+
g.letter(ranges: ['A'..'Z'], length: 2)
|
|
122
|
+
end
|
|
72
123
|
end
|
|
73
124
|
end
|
|
74
125
|
end
|
|
126
|
+
|
|
127
|
+
class InvalidStatePassed < StandardError
|
|
128
|
+
def initialize(msg = 'Invalid state code passed')
|
|
129
|
+
super
|
|
130
|
+
end
|
|
131
|
+
end
|
|
75
132
|
end
|