faker 2.13.0 → 3.8.0
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 +1277 -24
- data/README.md +138 -320
- data/lib/faker/blockchain/aeternity.rb +5 -5
- data/lib/faker/blockchain/bitcoin.rb +1 -2
- data/lib/faker/blockchain/ethereum.rb +1 -1
- data/lib/faker/blockchain/tezos.rb +30 -3
- data/lib/faker/blockchain.rb +9 -0
- data/lib/faker/books/dune.rb +17 -12
- data/lib/faker/books/lovecraft.rb +16 -44
- data/lib/faker/books/the_kingkiller_chronicle.rb +61 -0
- data/lib/faker/books.rb +9 -0
- data/lib/faker/creature/bird.rb +203 -0
- data/lib/faker/creature.rb +9 -0
- data/lib/faker/default/address.rb +11 -31
- data/lib/faker/default/adjective.rb +35 -0
- data/lib/faker/default/alphanumeric.rb +3 -9
- data/lib/faker/default/app.rb +1 -10
- data/lib/faker/default/avatar.rb +2 -13
- data/lib/faker/default/bank.rb +28 -26
- data/lib/faker/default/barcode.rb +165 -0
- data/lib/faker/default/beer.rb +3 -3
- data/lib/faker/default/boolean.rb +2 -4
- data/lib/faker/default/camera.rb +46 -0
- data/lib/faker/default/cannabis.rb +10 -0
- data/lib/faker/default/chile_rut.rb +28 -27
- data/lib/faker/default/chuck_norris.rb +1 -0
- data/lib/faker/default/code.rb +166 -52
- data/lib/faker/default/color.rb +77 -6
- data/lib/faker/default/commerce.rb +32 -18
- data/lib/faker/default/company.rb +175 -30
- data/lib/faker/default/crypto.rb +25 -5
- data/lib/faker/default/crypto_coin.rb +3 -15
- data/lib/faker/default/date.rb +65 -42
- data/lib/faker/default/demographic.rb +1 -5
- data/lib/faker/default/driving_licence.rb +45 -20
- data/lib/faker/default/drone.rb +332 -0
- data/lib/faker/default/educator.rb +13 -0
- data/lib/faker/default/emotion.rb +33 -0
- data/lib/faker/default/file.rb +5 -22
- data/lib/faker/default/finance.rb +51 -7
- data/lib/faker/default/food.rb +28 -2
- data/lib/faker/default/hipster.rb +15 -52
- data/lib/faker/default/hobby.rb +22 -0
- data/lib/faker/default/html.rb +230 -0
- data/lib/faker/default/id_number.rb +176 -31
- data/lib/faker/default/invoice.rb +8 -21
- data/lib/faker/default/json.rb +15 -27
- data/lib/faker/default/lorem.rb +179 -77
- data/lib/faker/default/lorem_flickr.rb +5 -38
- data/lib/faker/default/markdown.rb +14 -17
- data/lib/faker/default/marketing.rb +1 -1
- data/lib/faker/default/measurement.rb +19 -50
- data/lib/faker/default/military.rb +26 -0
- data/lib/faker/default/mountain.rb +33 -0
- data/lib/faker/default/name.rb +1 -5
- data/lib/faker/default/nation.rb +0 -3
- data/lib/faker/default/{nhs.rb → national_health_service.rb} +10 -10
- data/lib/faker/default/number.rb +34 -62
- data/lib/faker/default/omniauth.rb +102 -97
- data/lib/faker/default/phone_number.rb +36 -21
- data/lib/faker/default/placeholdit.rb +12 -22
- data/lib/faker/{quotes → default}/quote.rb +39 -0
- data/lib/faker/default/relationship.rb +2 -6
- data/lib/faker/default/science.rb +108 -0
- data/lib/faker/default/source.rb +3 -16
- data/lib/faker/default/south_africa.rb +3 -3
- data/lib/faker/default/space.rb +1 -1
- data/lib/faker/default/sport.rb +116 -0
- data/lib/faker/default/string.rb +2 -8
- data/lib/faker/default/stripe.rb +7 -23
- data/lib/faker/default/tea.rb +41 -0
- data/lib/faker/{music/show.rb → default/theater.rb} +8 -8
- data/lib/faker/default/time.rb +4 -34
- data/lib/faker/default/types.rb +14 -36
- data/lib/faker/default/vehicle.rb +45 -55
- data/lib/faker/default/vulnerability_identifier.rb +23 -0
- data/lib/faker/default/world_cup.rb +2 -11
- data/lib/faker/default/x.rb +189 -0
- data/lib/faker/default.rb +9 -0
- data/lib/faker/fantasy/tolkien.rb +67 -0
- data/lib/faker/fantasy.rb +9 -0
- data/lib/faker/games/clash_of_clans.rb +48 -0
- data/lib/faker/games/control.rb +1 -1
- data/lib/faker/games/dnd.rb +131 -14
- data/lib/faker/games/dota.rb +14 -5
- data/lib/faker/games/elder_scrolls.rb +26 -0
- data/lib/faker/games/final_fantasy_xiv.rb +73 -0
- data/lib/faker/games/heroes.rb +13 -0
- data/lib/faker/games/heroes_of_the_storm.rb +0 -11
- data/lib/faker/games/minecraft.rb +66 -1
- data/lib/faker/games/myst.rb +1 -1
- data/lib/faker/games/street_fighter.rb +61 -0
- data/lib/faker/games/super_mario.rb +48 -0
- data/lib/faker/games/tarkov.rb +205 -0
- data/lib/faker/games/touhou.rb +75 -0
- data/lib/faker/games/witcher.rb +39 -0
- data/lib/faker/games/world_of_warcraft.rb +26 -1
- data/lib/faker/games.rb +9 -0
- data/lib/faker/internet.rb +582 -0
- 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 +26 -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 +1 -1
- data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
- data/lib/faker/japanese_media.rb +9 -0
- data/lib/faker/locations/australia.rb +49 -0
- data/lib/faker/locations.rb +9 -0
- data/lib/faker/movies/avatar.rb +49 -0
- data/lib/faker/movies/hackers.rb +48 -0
- data/lib/faker/movies/hobbit.rb +4 -4
- data/lib/faker/movies/how_to_train_your_dragon.rb +48 -0
- data/lib/faker/movies/lord_of_the_rings.rb +3 -3
- data/lib/faker/movies/star_wars.rb +75 -7
- data/lib/faker/movies/the_room.rb +63 -0
- data/lib/faker/movies/tron.rb +161 -0
- data/lib/faker/movies.rb +9 -0
- data/lib/faker/music/bossa_nova.rb +35 -0
- data/lib/faker/music/grateful_dead.rb +0 -2
- data/lib/faker/music/hiphop.rb +48 -0
- data/lib/faker/music/opera.rb +237 -1
- data/lib/faker/music/pearl_jam.rb +0 -2
- data/lib/faker/music/rock_band.rb +12 -0
- data/lib/faker/music/rush.rb +0 -2
- data/lib/faker/music/smashing_pumpkins.rb +62 -0
- data/lib/faker/{music/music.rb → music.rb} +16 -0
- data/lib/faker/quotes/rajnikanth.rb +1 -0
- data/lib/faker/quotes/shakespeare.rb +34 -0
- data/lib/faker/quotes.rb +9 -0
- data/lib/faker/religion/bible.rb +50 -0
- data/lib/faker/religion.rb +9 -0
- data/lib/faker/sports/chess.rb +90 -0
- data/lib/faker/sports/mountaineering.rb +22 -0
- data/lib/faker/sports/volleyball.rb +74 -0
- data/lib/faker/sports.rb +9 -0
- data/lib/faker/travel/airport.rb +43 -0
- data/lib/faker/travel/train_station.rb +54 -0
- data/lib/faker/travel.rb +9 -0
- data/lib/faker/tv_shows/archer.rb +51 -0
- data/lib/faker/tv_shows/big_bang_theory.rb +1 -1
- data/lib/faker/tv_shows/brooklyn_nine_nine.rb +38 -0
- data/lib/faker/tv_shows/buffy.rb +5 -5
- data/lib/faker/tv_shows/dr_who.rb +0 -13
- data/lib/faker/tv_shows/final_space.rb +51 -0
- data/lib/faker/tv_shows/michael_scott.rb +0 -3
- data/lib/faker/tv_shows/south_park.rb +15 -0
- data/lib/faker/tv_shows/spongebob.rb +50 -0
- data/lib/faker/tv_shows/suits.rb +1 -1
- data/lib/faker/tv_shows/supernatural.rb +48 -0
- data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +5 -5
- data/lib/faker/tv_shows/the_office.rb +37 -0
- data/lib/faker/tv_shows.rb +9 -0
- data/lib/faker/version.rb +2 -2
- data/lib/faker.rb +96 -79
- data/lib/helpers/base58.rb +1 -1
- data/lib/helpers/deprecator.rb +118 -0
- data/lib/helpers/positional_generator.rb +478 -0
- data/lib/helpers/unique_generator.rb +14 -14
- data/lib/locales/README.md +18 -2
- data/lib/locales/ar.yml +1608 -46
- data/lib/locales/bg.yml +935 -19
- data/lib/locales/ca-CAT.yml +347 -12
- data/lib/locales/ca.yml +580 -7
- data/lib/locales/da-DK.yml +529 -35
- data/lib/locales/de-AT.yml +3487 -25
- data/lib/locales/de-CH.yml +4359 -10
- data/lib/locales/de.yml +7185 -97
- data/lib/locales/ee.yml +1185 -27
- data/lib/locales/en/address.yml +1826 -562
- data/lib/locales/en/adjective.yml +179 -0
- data/lib/locales/en/airport.yml +381 -0
- data/lib/locales/en/ancient.yml +128 -4
- data/lib/locales/en/animal.yml +141 -2
- data/lib/locales/en/app.yml +89 -2
- data/lib/locales/en/appliance.yml +81 -2
- data/lib/locales/en/aqua_teen_hunger_force.yml +31 -31
- data/lib/locales/en/archer.yml +75 -0
- data/lib/locales/en/artist.yml +43 -1
- data/lib/locales/en/australia.yml +108 -0
- data/lib/locales/en/avatar.yml +57 -0
- data/lib/locales/en/back_to_the_future.yml +145 -117
- data/lib/locales/en/bank.yml +92 -3
- data/lib/locales/en/barcode.yml +24 -0
- data/lib/locales/en/beer.yml +232 -6
- data/lib/locales/en/bible.yml +87 -0
- data/lib/locales/en/big_bang_theory.yml +34 -35
- data/lib/locales/en/bird.yml +1280 -0
- data/lib/locales/en/bojack_horseman.yml +63 -3
- data/lib/locales/en/book.yml +486 -3
- data/lib/locales/en/bossa_nova.yml +110 -3
- data/lib/locales/en/breaking_bad.yml +110 -25
- data/lib/locales/en/brooklyn_nine_nine.yml +34 -0
- data/lib/locales/en/buffy.yml +239 -257
- data/lib/locales/en/business.yml +18 -2
- data/lib/locales/en/camera.yml +611 -0
- data/lib/locales/en/cannabis.yml +344 -10
- data/lib/locales/en/cat.yml +155 -3
- data/lib/locales/en/chess.yml +102 -0
- data/lib/locales/en/chiquito.yml +60 -61
- data/lib/locales/en/chuck_norris.yml +78 -79
- data/lib/locales/en/clash_of_clan.yml +99 -0
- data/lib/locales/en/code.yml +501 -1
- data/lib/locales/en/coffee.yml +450 -25
- data/lib/locales/en/color.yml +73 -1
- data/lib/locales/en/commerce.yml +117 -6
- data/lib/locales/en/community.yml +55 -30
- data/lib/locales/en/company.yml +1756 -13
- data/lib/locales/en/compass.yml +108 -12
- data/lib/locales/en/computer.yml +23 -4
- data/lib/locales/en/conan.yml +169 -0
- data/lib/locales/en/construction.yml +416 -422
- data/lib/locales/en/cosmere.yml +219 -54
- data/lib/locales/en/cowboy_bebop.yml +160 -0
- data/lib/locales/en/culture_series.yml +298 -298
- data/lib/locales/en/currency.yml +358 -3
- data/lib/locales/en/dc_comics.yml +178 -49
- data/lib/locales/en/demographic.yml +218 -5
- data/lib/locales/en/departed.yml +40 -44
- data/lib/locales/en/dessert.yml +78 -3
- data/lib/locales/en/device.yml +112 -4
- data/lib/locales/en/dnd.yml +615 -33
- data/lib/locales/en/dog.yml +262 -7
- data/lib/locales/en/doraemon.yml +284 -0
- data/lib/locales/en/dota.yml +704 -63
- data/lib/locales/en/dr_who.yml +468 -93
- 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/dumb_and_dumber.yml +72 -56
- data/lib/locales/en/dune.yml +270 -131
- data/lib/locales/en/educator.yml +6 -0
- data/lib/locales/en/elder_scrolls.yml +582 -9
- data/lib/locales/en/electrical_components.yml +49 -3
- data/lib/locales/en/emotion.yml +480 -0
- data/lib/locales/en/esport.yml +58 -5
- data/lib/locales/en/fallout.yml +311 -133
- data/lib/locales/en/family_guy.yml +54 -4
- data/lib/locales/en/file.yml +109 -2
- data/lib/locales/en/final_fantasy_xiv.yml +754 -0
- data/lib/locales/en/final_space.yml +35 -0
- data/lib/locales/en/finance.yml +80 -4
- data/lib/locales/en/food.yml +1067 -10
- data/lib/locales/en/football.yml +121 -5
- data/lib/locales/en/fresh_prince_of_bel_air.yml +119 -70
- data/lib/locales/en/friends.yml +162 -3
- data/lib/locales/en/fullmetal_alchemist_brotherhood.yml +78 -0
- data/lib/locales/en/funny_name.yml +752 -1
- data/lib/locales/en/futurama.yml +7 -15
- data/lib/locales/en/game.yml +11 -0
- data/lib/locales/en/game_of_thrones.yml +2487 -5
- data/lib/locales/en/gender.yml +15 -3
- data/lib/locales/en/ghostbusters.yml +101 -88
- data/lib/locales/en/grateful_dead.yml +47 -45
- data/lib/locales/en/greek_philosophers.yml +44 -23
- data/lib/locales/en/hacker.yml +110 -5
- data/lib/locales/en/hackers.yml +53 -0
- data/lib/locales/en/half_life.yml +84 -3
- data/lib/locales/en/harry_potter.yml +323 -6
- data/lib/locales/en/heroes.yml +408 -3
- data/lib/locales/en/heroes_of_the_storm.yml +131 -4
- data/lib/locales/en/hey_arnold.yml +104 -21
- data/lib/locales/en/hipster.yml +203 -1
- data/lib/locales/en/hitchhikers_guide_to_the_galaxy.yml +243 -42
- data/lib/locales/en/hobby.yml +170 -0
- data/lib/locales/en/horse.yml +446 -2
- data/lib/locales/en/house.yml +34 -2
- data/lib/locales/en/how_i_met_your_mother.yml +97 -25
- data/lib/locales/en/how_to_train_your_dragon.yml +173 -0
- data/lib/locales/en/id_number.yml +7 -2
- data/lib/locales/en/industry_segments.yml +188 -4
- data/lib/locales/en/internet.yml +136 -3
- data/lib/locales/en/jack_handey.yml +54 -0
- data/lib/locales/en/job.yml +98 -7
- data/lib/locales/en/kamen_rider.yml +718 -0
- data/lib/locales/en/kpop.yml +954 -80
- data/lib/locales/en/league_of_legends.yml +285 -6
- data/lib/locales/en/lebowski.yml +58 -40
- data/lib/locales/en/lorem.yml +1095 -6
- data/lib/locales/en/lovecraft.yml +76 -6
- data/lib/locales/en/markdown.yml +12 -2
- data/lib/locales/en/marketing.yml +54 -1
- data/lib/locales/en/measurement.yml +42 -8
- data/lib/locales/en/michael_scott.yml +41 -42
- data/lib/locales/en/military.yml +179 -5
- data/lib/locales/en/minecraft.yml +273 -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 +188 -175
- data/lib/locales/en/music.yml +461 -29
- data/lib/locales/en/myst.yml +87 -31
- data/lib/locales/en/name.yml +6068 -6
- data/lib/locales/en/naruto.yml +230 -0
- data/lib/locales/en/nato_phonetic_alphabet.yml +27 -1
- data/lib/locales/en/new_girl.yml +35 -37
- data/lib/locales/en/one_piece.yml +359 -6
- data/lib/locales/en/opera.yml +169 -1
- data/lib/locales/en/overwatch.yml +2648 -2622
- data/lib/locales/en/parks_and_rec.yml +33 -4
- data/lib/locales/en/pearl_jam.yml +207 -207
- data/lib/locales/en/phish.yml +388 -389
- data/lib/locales/en/phone_number.yml +78 -3
- data/lib/locales/en/pokemon.yml +417 -4
- data/lib/locales/en/prince.yml +219 -219
- data/lib/locales/en/princess_bride.yml +48 -2
- data/lib/locales/en/programming_language.yml +753 -3
- data/lib/locales/en/quote.yml +606 -163
- data/lib/locales/en/rajnikanth.yml +74 -74
- data/lib/locales/en/relationship.yml +29 -6
- data/lib/locales/en/restaurant.yml +31 -31
- data/lib/locales/en/rick_and_morty.yml +116 -3
- data/lib/locales/en/rock_band.yml +228 -1
- data/lib/locales/en/rupaul.yml +120 -122
- data/lib/locales/en/science.yml +481 -3
- data/lib/locales/en/seinfeld.yml +110 -3
- data/lib/locales/en/shakespeare.yml +46 -53
- data/lib/locales/en/silicon_valley.yml +122 -50
- data/lib/locales/en/simpsons.yml +897 -691
- data/lib/locales/en/slack_emoji.yml +874 -8
- 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 +373 -14
- data/lib/locales/en/spongebob.yml +489 -0
- data/lib/locales/en/sport.yml +130 -0
- data/lib/locales/en/star_trek.yml +105 -4
- data/lib/locales/en/star_wars.yml +525 -528
- data/lib/locales/en/stargate.yml +65 -18
- data/lib/locales/en/stranger_thing.yml +31 -33
- data/lib/locales/en/street_fighter.yml +1524 -0
- data/lib/locales/en/studio_ghibli.yml +107 -0
- data/lib/locales/en/subscription.yml +47 -5
- data/lib/locales/en/super_mario.yml +58 -0
- data/lib/locales/en/super_smash_bros.yml +23 -6
- data/lib/locales/en/superhero.yml +574 -4
- data/lib/locales/en/supernatural.yml +141 -0
- data/lib/locales/en/sword_art_online.yml +327 -331
- data/lib/locales/en/tarkov.yml +593 -0
- data/lib/locales/en/tea.yml +172 -0
- data/lib/locales/en/team.yml +125 -3
- data/lib/locales/en/the_expanse.yml +92 -4
- data/lib/locales/en/the_it_crowd.yml +148 -152
- data/lib/locales/en/the_kingkiller_chronicle.yml +56 -0
- data/lib/locales/en/the_office.yml +82 -0
- data/lib/locales/en/the_room.yml +68 -0
- data/lib/locales/en/the_thick_of_it.yml +83 -3
- data/lib/locales/en/theater.yml +597 -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/twin_peaks.yml +130 -3
- data/lib/locales/en/umphreys_mcgee.yml +266 -1
- data/lib/locales/en/university.yml +15 -2
- data/lib/locales/en/v_for_vendetta.yml +157 -160
- data/lib/locales/en/vehicle.yml +2809 -75
- data/lib/locales/en/venture_bros.yml +225 -4
- data/lib/locales/en/verbs.yml +3785 -5
- data/lib/locales/en/volleyball.yml +501 -0
- data/lib/locales/en/warhammer_fantasy.yml +540 -573
- data/lib/locales/en/witcher.yml +426 -7
- data/lib/locales/en/world_cup.yml +1132 -235
- data/lib/locales/en/world_of_warcraft.yml +122 -4
- data/lib/locales/en/yoda.yml +38 -1
- data/lib/locales/en/zelda.yml +962 -4
- data/lib/locales/en-AU.yml +725 -48
- data/lib/locales/en-BORK.yml +104 -1
- data/lib/locales/en-CA.yml +373 -18
- data/lib/locales/en-GB.yml +118 -8
- data/lib/locales/en-IND.yml +1259 -16
- data/lib/locales/en-KE.yml +212 -0
- data/lib/locales/en-MS.yml +364 -16
- data/lib/locales/en-NEP.yml +212 -35
- data/lib/locales/en-NG.yml +737 -65
- data/lib/locales/en-NZ.yml +1153 -121
- data/lib/locales/en-PAK.yml +392 -9
- data/lib/locales/en-SG.yml +581 -15
- data/lib/locales/en-TH.yml +1 -1
- data/lib/locales/en-UG.yml +374 -75
- data/lib/locales/en-US.yml +6921 -81
- data/lib/locales/en-ZA.yml +1394 -13
- data/lib/locales/en-au-ocker.yml +266 -21
- data/lib/locales/en.yml +0 -3
- data/lib/locales/es-AR.yml +4570 -0
- data/lib/locales/es-MX.yml +1907 -41
- data/lib/locales/es.yml +2172 -52
- data/lib/locales/fa.yml +1624 -5
- data/lib/locales/fi-FI.yml +316 -16
- data/lib/locales/fr/address.yml +773 -0
- data/lib/locales/fr/adjective.yml +266 -0
- data/lib/locales/fr/ancient.yml +141 -0
- data/lib/locales/fr/animal.yml +122 -0
- data/lib/locales/fr/appliance.yml +69 -0
- data/lib/locales/fr/book.yml +31 -0
- data/lib/locales/fr/color.yml +34 -0
- data/lib/locales/fr/company.yml +497 -0
- data/lib/locales/fr/compass.yml +71 -0
- data/lib/locales/fr/demographic.yml +6 -0
- data/lib/locales/fr/gender.yml +21 -0
- data/lib/locales/fr/internet.yml +15 -0
- data/lib/locales/fr/lorem.yml +1094 -0
- data/lib/locales/fr/measurement.yml +34 -0
- data/lib/locales/fr/name.yml +1193 -0
- data/lib/locales/fr/phone_number.yml +38 -0
- data/lib/locales/fr/pokemon.yml +421 -0
- data/lib/locales/fr-CA.yml +2754 -45
- data/lib/locales/fr-CH.yml +2455 -42
- data/lib/locales/fr.yml +2 -112
- data/lib/locales/he.yml +255 -9
- data/lib/locales/hy.yml +3630 -119
- data/lib/locales/id.yml +839 -10
- data/lib/locales/it.yml +1310 -31
- data/lib/locales/ja/README.md +13 -0
- data/lib/locales/ja/address.yml +363 -0
- data/lib/locales/ja/adjective.yml +148 -0
- data/lib/locales/ja/ancient.yml +18 -0
- data/lib/locales/ja/animal.yml +87 -0
- data/lib/locales/ja/artist.yml +46 -0
- data/lib/locales/ja/bank.yml +139 -0
- data/lib/locales/ja/book.yml +496 -0
- data/lib/locales/ja/cat.yml +79 -0
- data/lib/locales/ja/coffee.yml +22 -0
- data/lib/locales/ja/color.yml +35 -0
- data/lib/locales/ja/commerce.yml +103 -0
- data/lib/locales/ja/company.yml +26 -0
- data/lib/locales/ja/dog.yml +339 -0
- data/lib/locales/ja/emotion.yml +49 -0
- data/lib/locales/ja/food.yml +41 -0
- data/lib/locales/ja/football.yml +115 -0
- data/lib/locales/ja/gender.yml +6 -0
- data/lib/locales/ja/lorem.yml +1020 -0
- data/lib/locales/ja/name.yml +213 -0
- data/lib/locales/ja/naruto.yml +230 -0
- data/lib/locales/ja/overwatch.yml +37 -0
- data/lib/locales/ja/phone_number.yml +13 -0
- data/lib/locales/ja/pokemon.yml +441 -0
- data/lib/locales/ja/relationship.yml +33 -0
- data/lib/locales/ja/restaurant.yml +82 -0
- data/lib/locales/ja/space.yml +23 -0
- data/lib/locales/ja/sport.yml +130 -0
- data/lib/locales/ja/studio_ghibli.yml +112 -0
- data/lib/locales/ja/subscription.yml +50 -0
- data/lib/locales/ja/super_mario.yml +73 -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 +22 -0
- data/lib/locales/ja/zelda.yml +19 -0
- data/lib/locales/ko.yml +1380 -29
- data/lib/locales/lt.yml +315 -0
- data/lib/locales/lv.yml +1221 -27
- data/lib/locales/mi-NZ.yml +283 -0
- data/lib/locales/nb-NO.yml +518 -27
- data/lib/locales/nl.yml +33514 -55
- data/lib/locales/pl.yml +4008 -38
- data/lib/locales/pt-BR.yml +8207 -660
- data/lib/locales/pt.yml +844 -43
- data/lib/locales/ru.yml +1355 -30
- data/lib/locales/sk.yml +4416 -41
- data/lib/locales/sv.yml +731 -41
- data/lib/locales/th.yml +375 -375
- data/lib/locales/tr.yml +77 -19
- data/lib/locales/uk.yml +1810 -44
- data/lib/locales/vi.yml +392 -48
- data/lib/locales/zh-CN/bank.yml +17 -0
- data/lib/locales/zh-CN.yml +540 -18
- data/lib/locales/zh-TW.yml +1030 -14
- metadata +188 -141
- data/History.md +0 -176
- data/lib/faker/default/bossa_nova.rb +0 -33
- data/lib/faker/default/fillmurray.rb +0 -45
- data/lib/faker/default/internet.rb +0 -358
- data/lib/faker/default/lorem_pixel.rb +0 -69
- data/lib/faker/default/twitter.rb +0 -223
- data/lib/locales/en/hobbit.yml +0 -19
- data/lib/locales/en/lord_of_the_rings.yml +0 -6
- data/lib/locales/en/show.yml +0 -597
- data/lib/locales/ja.yml +0 -101
- /data/lib/faker/{books → default}/book.rb +0 -0
- /data/lib/faker/{games → default}/game.rb +0 -0
- /data/lib/faker/{movies → default}/movie.rb +0 -0
- /data/lib/faker/{default/internet_http.rb → internet/http.rb} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
module Faker
|
|
4
|
-
class
|
|
4
|
+
class IdNumber < Base
|
|
5
5
|
CHECKS = 'TRWAGMYFPDXBNJZSQVHLCKE'
|
|
6
6
|
INVALID_SSN = [
|
|
7
7
|
/0{3}-\d{2}-\d{4}/,
|
|
@@ -12,7 +12,7 @@ module Faker
|
|
|
12
12
|
].freeze
|
|
13
13
|
ZA_RACE_DIGIT = '8'
|
|
14
14
|
ZA_CITIZENSHIP_DIGITS = %w[0 1].freeze
|
|
15
|
-
BRAZILIAN_ID_FORMAT = /(\d{1,2})(\d{3})(\d{3})([\dX])
|
|
15
|
+
BRAZILIAN_ID_FORMAT = /(\d{1,2})(\d{3})(\d{3})([\dX])/
|
|
16
16
|
BRAZILIAN_ID_FROM = 10_000_000
|
|
17
17
|
BRAZILIAN_ID_TO = 99_999_999
|
|
18
18
|
|
|
@@ -25,7 +25,7 @@ module Faker
|
|
|
25
25
|
# @return [String]
|
|
26
26
|
#
|
|
27
27
|
# @example
|
|
28
|
-
# Faker::
|
|
28
|
+
# Faker::IdNumber.valid #=> "552-56-3593"
|
|
29
29
|
#
|
|
30
30
|
# @faker.version 1.6.0
|
|
31
31
|
def valid
|
|
@@ -38,7 +38,7 @@ module Faker
|
|
|
38
38
|
# @return [String]
|
|
39
39
|
#
|
|
40
40
|
# @example
|
|
41
|
-
# Faker::
|
|
41
|
+
# Faker::IdNumber.invalid #=> "311-72-0000"
|
|
42
42
|
#
|
|
43
43
|
# @faker.version 1.6.0
|
|
44
44
|
def invalid
|
|
@@ -46,9 +46,23 @@ module Faker
|
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
def ssn_valid
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
generate(:string) do |g|
|
|
50
|
+
g.computed(name: :first) do
|
|
51
|
+
range = [1..665, 667..899].sample(random: Faker::Config.random)
|
|
52
|
+
n = Faker::Base.rand(range)
|
|
53
|
+
format('%03d', n)
|
|
54
|
+
end
|
|
55
|
+
g.lit('-')
|
|
56
|
+
g.computed(name: :second) do
|
|
57
|
+
n = Faker::Base.rand(1..99)
|
|
58
|
+
format('%02d', n)
|
|
59
|
+
end
|
|
60
|
+
g.lit('-')
|
|
61
|
+
g.computed(name: :third) do
|
|
62
|
+
n = Faker::Base.rand(1..9999)
|
|
63
|
+
format('%04d', n)
|
|
64
|
+
end
|
|
65
|
+
end
|
|
52
66
|
end
|
|
53
67
|
|
|
54
68
|
##
|
|
@@ -57,7 +71,7 @@ module Faker
|
|
|
57
71
|
# @return [String]
|
|
58
72
|
#
|
|
59
73
|
# @example
|
|
60
|
-
# Faker::
|
|
74
|
+
# Faker::IdNumber.spanish_citizen_number #=> "53290236-H"
|
|
61
75
|
#
|
|
62
76
|
# @faker.version 1.9.0
|
|
63
77
|
def spanish_citizen_number
|
|
@@ -73,7 +87,7 @@ module Faker
|
|
|
73
87
|
# @return [String]
|
|
74
88
|
#
|
|
75
89
|
# @example
|
|
76
|
-
# Faker::
|
|
90
|
+
# Faker::IdNumber.spanish_foreign_citizen_number #=> "Z-1600870-Y"
|
|
77
91
|
#
|
|
78
92
|
# @faker.version 1.9.0
|
|
79
93
|
def spanish_foreign_citizen_number
|
|
@@ -92,8 +106,8 @@ module Faker
|
|
|
92
106
|
# @return [String]
|
|
93
107
|
#
|
|
94
108
|
# @example
|
|
95
|
-
# Faker::
|
|
96
|
-
# Faker::
|
|
109
|
+
# Faker::IdNumber.south_african_id_number #=> "8105128870184"
|
|
110
|
+
# Faker::IdNumber.valid_south_african_id_number #=> "8105128870184"
|
|
97
111
|
#
|
|
98
112
|
# @faker.version 1.9.2
|
|
99
113
|
def valid_south_african_id_number
|
|
@@ -115,7 +129,7 @@ module Faker
|
|
|
115
129
|
# @return [String]
|
|
116
130
|
#
|
|
117
131
|
# @example
|
|
118
|
-
# Faker::
|
|
132
|
+
# Faker::IdNumber.invalid_south_african_id_number #=> "1642972065088"
|
|
119
133
|
#
|
|
120
134
|
# @faker.version 1.9.2
|
|
121
135
|
def invalid_south_african_id_number
|
|
@@ -123,7 +137,7 @@ module Faker
|
|
|
123
137
|
Faker::Number.number(digits: 2),
|
|
124
138
|
Faker::Number.between(from: 13, to: 99),
|
|
125
139
|
Faker::Number.between(from: 32, to: 99)
|
|
126
|
-
].
|
|
140
|
+
].join
|
|
127
141
|
|
|
128
142
|
id_number = [
|
|
129
143
|
invalid_date_of_birth,
|
|
@@ -142,15 +156,11 @@ module Faker
|
|
|
142
156
|
# @return [String]
|
|
143
157
|
#
|
|
144
158
|
# @example
|
|
145
|
-
# Faker::
|
|
146
|
-
# Faker::
|
|
159
|
+
# Faker::IdNumber.brazilian_citizen_number #=> "53540542221"
|
|
160
|
+
# Faker::IdNumber.brazilian_citizen_number(formatted: true) #=> "535.405.422-21"
|
|
147
161
|
#
|
|
148
162
|
# @faker.version 1.9.2
|
|
149
|
-
def brazilian_citizen_number(
|
|
150
|
-
warn_for_deprecated_arguments do |keywords|
|
|
151
|
-
keywords << :formatted if legacy_formatted != NOT_GIVEN
|
|
152
|
-
end
|
|
153
|
-
|
|
163
|
+
def brazilian_citizen_number(formatted: false)
|
|
154
164
|
digits = Faker::Number.leading_zero_number(digits: 9) until digits&.match(/(\d)((?!\1)\d)+/)
|
|
155
165
|
first_digit = brazilian_citizen_number_checksum_digit(digits)
|
|
156
166
|
second_digit = brazilian_citizen_number_checksum_digit(digits + first_digit)
|
|
@@ -167,15 +177,11 @@ module Faker
|
|
|
167
177
|
# @return [String]
|
|
168
178
|
#
|
|
169
179
|
# @example
|
|
170
|
-
# Faker::
|
|
171
|
-
# Faker::
|
|
180
|
+
# Faker::IdNumber.brazilian_id #=> "493054029"
|
|
181
|
+
# Faker::IdNumber.brazilian_id(formatted: true) #=> "49.305.402-9"
|
|
172
182
|
#
|
|
173
183
|
# @faker.version 2.1.2
|
|
174
|
-
def brazilian_id(
|
|
175
|
-
warn_for_deprecated_arguments do |keywords|
|
|
176
|
-
keywords << :formatted if legacy_formatted != NOT_GIVEN
|
|
177
|
-
end
|
|
178
|
-
|
|
184
|
+
def brazilian_id(formatted: false)
|
|
179
185
|
digits = Faker::Number.between(to: BRAZILIAN_ID_FROM, from: BRAZILIAN_ID_TO).to_s
|
|
180
186
|
check_digit = brazilian_id_checksum_digit(digits)
|
|
181
187
|
number = [digits, check_digit].join
|
|
@@ -190,18 +196,118 @@ module Faker
|
|
|
190
196
|
# @return [String]
|
|
191
197
|
#
|
|
192
198
|
# @example
|
|
193
|
-
# Faker::
|
|
199
|
+
# Faker::IdNumber.chilean_id #=> "15620613-K"
|
|
194
200
|
#
|
|
195
201
|
# @faker.version 2.1.2
|
|
196
202
|
def chilean_id
|
|
197
203
|
digits = Faker::Number.number(digits: 8)
|
|
198
204
|
verification_code = chilean_verification_code(digits)
|
|
199
205
|
|
|
200
|
-
digits
|
|
206
|
+
"#{digits}-#{verification_code}"
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
##
|
|
210
|
+
# Produces a random Croatian ID number (OIB).
|
|
211
|
+
#
|
|
212
|
+
# @param international [Boolean] Specifies whether to add international prefix.
|
|
213
|
+
# @return [String]
|
|
214
|
+
#
|
|
215
|
+
# @example
|
|
216
|
+
# Faker::IdNumber.croatian_id #=> "88467617508"
|
|
217
|
+
# Faker::IdNumber.croatian_id(international: true) #=> "HR88467617508"
|
|
218
|
+
#
|
|
219
|
+
# @faker.version next
|
|
220
|
+
def croatian_id(international: false)
|
|
221
|
+
prefix = international ? 'HR' : ''
|
|
222
|
+
digits = Faker::Number.number(digits: 10).to_s
|
|
223
|
+
checksum_digit = croatian_id_checksum_digit(digits)
|
|
224
|
+
|
|
225
|
+
"#{prefix}#{digits}#{checksum_digit}"
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
##
|
|
229
|
+
# Produces a random Danish ID Number (CPR number).
|
|
230
|
+
# CPR number is 10 digits. Digit 1-6 is the birthdate (format "DDMMYY").
|
|
231
|
+
# Digit 7-10 is a sequence number.
|
|
232
|
+
# Digit 7 digit is a control digit that determines the century of birth.
|
|
233
|
+
# Digit 10 reveals the gender: # even is female, odd is male.
|
|
234
|
+
#
|
|
235
|
+
# @param formatted [Boolean] Specifies if the number is formatted with dividers.
|
|
236
|
+
# @param birthday [Date] Specifies the birthday for the id number.
|
|
237
|
+
# @param gender [Symbol] Specifies the gender for the id number. Must be one :male or :female if present.
|
|
238
|
+
# @return [String]
|
|
239
|
+
#
|
|
240
|
+
# @example
|
|
241
|
+
# Faker::IdNumber.danish_id_number #=> "0503909980"
|
|
242
|
+
# Faker::IdNumber.danish_id_number(formatted: true) #=> "050390-9980"
|
|
243
|
+
# Faker::IdNumber.danish_id_number(birthday: Date.new(1990, 3, 5)) #=> "0503909980"
|
|
244
|
+
# Faker::IdNumber.danish_id_number(gender: :female) #=> "0503909980"
|
|
245
|
+
#
|
|
246
|
+
# @faker.version next
|
|
247
|
+
def danish_id_number(formatted: false, birthday: Faker::Date.birthday, gender: nil)
|
|
248
|
+
valid_control_digits = danish_control_digits(birthday)
|
|
249
|
+
control_digit = sample(valid_control_digits)
|
|
250
|
+
digits = (0..9).to_a
|
|
251
|
+
gender = gender.to_sym if gender.respond_to?(:to_sym)
|
|
252
|
+
gender_digit = case gender
|
|
253
|
+
when nil
|
|
254
|
+
sample(digits)
|
|
255
|
+
when :male
|
|
256
|
+
sample(digits.select(&:odd?))
|
|
257
|
+
when :female
|
|
258
|
+
sample(digits.select(&:even?))
|
|
259
|
+
else
|
|
260
|
+
raise ArgumentError, "Invalid gender #{gender}. Must be one of male, female, or be omitted."
|
|
261
|
+
end
|
|
262
|
+
|
|
263
|
+
[
|
|
264
|
+
birthday.strftime('%d%m%y'),
|
|
265
|
+
formatted ? '-' : '',
|
|
266
|
+
control_digit,
|
|
267
|
+
Faker::Number.number(digits: 2),
|
|
268
|
+
gender_digit
|
|
269
|
+
].join
|
|
270
|
+
end
|
|
271
|
+
|
|
272
|
+
##
|
|
273
|
+
# Produces a random French social security number (INSEE number).
|
|
274
|
+
#
|
|
275
|
+
# @return [String]
|
|
276
|
+
#
|
|
277
|
+
# @example
|
|
278
|
+
# Faker::IdNumber.french_insee_number #=> "53290236-H"
|
|
279
|
+
#
|
|
280
|
+
# @faker.version next
|
|
281
|
+
def french_insee_number
|
|
282
|
+
num = [
|
|
283
|
+
[1, 2].sample(random: Faker::Config.random), # gender
|
|
284
|
+
Faker::Number.between(from: 0, to: 99).to_s.rjust(2, '0'), # year of birth
|
|
285
|
+
Faker::Number.between(from: 1, to: 12).to_s.rjust(2, '0'), # month of birth
|
|
286
|
+
Faker::Number.number(digits: 5), # place of birth
|
|
287
|
+
Faker::Number.number(digits: 3) # order number
|
|
288
|
+
].join
|
|
289
|
+
mod = num.to_i % 97
|
|
290
|
+
check = (97 - mod).to_s.rjust(2, '0')
|
|
291
|
+
"#{num}#{check}"
|
|
201
292
|
end
|
|
202
293
|
|
|
203
294
|
private
|
|
204
295
|
|
|
296
|
+
def croatian_id_checksum_digit(digits)
|
|
297
|
+
control_sum = 10
|
|
298
|
+
|
|
299
|
+
digits.chars.map(&:to_i).each do |digit|
|
|
300
|
+
control_sum += digit
|
|
301
|
+
control_sum %= 10
|
|
302
|
+
control_sum = 10 if control_sum.zero?
|
|
303
|
+
control_sum *= 2
|
|
304
|
+
control_sum %= 11
|
|
305
|
+
end
|
|
306
|
+
|
|
307
|
+
control_sum = 11 - control_sum
|
|
308
|
+
control_sum % 10
|
|
309
|
+
end
|
|
310
|
+
|
|
205
311
|
def chilean_verification_code(digits)
|
|
206
312
|
# First digit is multiplied by 3, second by 2, and so on
|
|
207
313
|
multiplication_rule = [3, 2, 7, 6, 5, 4, 3, 2]
|
|
@@ -232,7 +338,7 @@ module Faker
|
|
|
232
338
|
.with_index { |_, i| (i + 1).odd? }
|
|
233
339
|
|
|
234
340
|
sum_of_odd_digits = odd_digits_without_last_character.map(&:to_i).reduce(:+)
|
|
235
|
-
even_digits_times_two = (even_digits.join
|
|
341
|
+
even_digits_times_two = (even_digits.join.to_i * 2).to_s
|
|
236
342
|
sum_of_even_digits = even_digits_times_two.chars.map(&:to_i).reduce(:+)
|
|
237
343
|
|
|
238
344
|
total_sum = sum_of_odd_digits + sum_of_even_digits
|
|
@@ -256,7 +362,7 @@ module Faker
|
|
|
256
362
|
end * 10
|
|
257
363
|
end
|
|
258
364
|
|
|
259
|
-
def brazilian_document_digit(checksum, id
|
|
365
|
+
def brazilian_document_digit(checksum, id: false)
|
|
260
366
|
remainder = checksum % 11
|
|
261
367
|
id ? brazilian_id_digit(remainder) : brazilian_citizen_number_digit(remainder)
|
|
262
368
|
end
|
|
@@ -271,6 +377,45 @@ module Faker
|
|
|
271
377
|
digits.include?(subtraction) ? digits[subtraction] : subtraction.to_s
|
|
272
378
|
end
|
|
273
379
|
|
|
380
|
+
def danish_control_digits(birthday)
|
|
381
|
+
year = birthday.year
|
|
382
|
+
century = year.to_s.slice(0, 2).to_i
|
|
383
|
+
year_digits = year.to_s.slice(2, 2).to_i
|
|
384
|
+
error_message = "Invalid birthday: #{birthday}. Danish CPR numbers are only distributed to persons born between 1858 and 2057."
|
|
385
|
+
|
|
386
|
+
case century
|
|
387
|
+
when 18
|
|
388
|
+
# If 5, 6, 7 or 8 and the year numbers are greater than or equal to 58, you were born in 18XX.
|
|
389
|
+
case year_digits
|
|
390
|
+
when 58..99
|
|
391
|
+
[5, 6, 7, 8]
|
|
392
|
+
else
|
|
393
|
+
raise ArgumentError, error_message
|
|
394
|
+
end
|
|
395
|
+
when 19
|
|
396
|
+
# If 0, 1, 2 or 3, you are always born in 19XX.
|
|
397
|
+
# If 4 or 9, you are born in 19XX if the year digits are greater than 36.
|
|
398
|
+
|
|
399
|
+
case year_digits
|
|
400
|
+
when 0..36
|
|
401
|
+
[0, 1, 2, 3]
|
|
402
|
+
else # 37..99
|
|
403
|
+
[0, 1, 2, 3, 4, 9]
|
|
404
|
+
end
|
|
405
|
+
else
|
|
406
|
+
# If 4, 5, 6, 7, 8 or 9 and the year digits are less than or equal to 36, you were born in 20XX.
|
|
407
|
+
# 5, 6, 7 and 8 are not distributed to persons, with year digits from and including 37 to and including 57.
|
|
408
|
+
case year_digits
|
|
409
|
+
when 0..36
|
|
410
|
+
[4, 5, 6, 7, 8, 9]
|
|
411
|
+
when 37..57
|
|
412
|
+
[5, 6, 7, 8]
|
|
413
|
+
else
|
|
414
|
+
raise ArgumentError, error_message
|
|
415
|
+
end
|
|
416
|
+
end
|
|
417
|
+
end
|
|
418
|
+
|
|
274
419
|
def _translate(key)
|
|
275
420
|
parse("id_number.#{key}")
|
|
276
421
|
end
|
|
@@ -13,21 +13,16 @@ module Faker
|
|
|
13
13
|
# @return [Integer]
|
|
14
14
|
#
|
|
15
15
|
# @example
|
|
16
|
-
# Faker::
|
|
17
|
-
# Faker::
|
|
16
|
+
# Faker::Invoice.amount_between #=> 0
|
|
17
|
+
# Faker::Invoice.amount_between(from: 0, to: 10) #=> 4.33
|
|
18
18
|
#
|
|
19
19
|
# @faker.version 1.9.0
|
|
20
|
-
def amount_between(
|
|
21
|
-
warn_for_deprecated_arguments do |keywords|
|
|
22
|
-
keywords << :from if legacy_from != NOT_GIVEN
|
|
23
|
-
keywords << :to if legacy_to != NOT_GIVEN
|
|
24
|
-
end
|
|
25
|
-
|
|
20
|
+
def amount_between(from: 0, to: 0)
|
|
26
21
|
Faker::Base.rand_in_range(from, to).round(2)
|
|
27
22
|
end
|
|
28
23
|
|
|
29
24
|
##
|
|
30
|
-
# Produces a random valid reference
|
|
25
|
+
# Produces a random valid reference according to the International bank slip reference https://en.wikipedia.org/wiki/Creditor_Reference
|
|
31
26
|
#
|
|
32
27
|
# @param ref [String] Specifies reference base.
|
|
33
28
|
# @return [String]
|
|
@@ -36,14 +31,10 @@ module Faker
|
|
|
36
31
|
# Faker::Invoice.creditor_reference #=> "RF34118592570724925498"
|
|
37
32
|
#
|
|
38
33
|
# @faker.version 1.9.0
|
|
39
|
-
def creditor_reference(
|
|
40
|
-
warn_for_deprecated_arguments do |keywords|
|
|
41
|
-
keywords << :ref if legacy_ref != NOT_GIVEN
|
|
42
|
-
end
|
|
43
|
-
|
|
34
|
+
def creditor_reference(ref: '')
|
|
44
35
|
ref = reference if ref.empty?
|
|
45
36
|
|
|
46
|
-
|
|
37
|
+
"RF#{iban_checksum('RF', ref)}#{ref}"
|
|
47
38
|
end
|
|
48
39
|
|
|
49
40
|
##
|
|
@@ -56,11 +47,7 @@ module Faker
|
|
|
56
47
|
# Faker::Invoice.reference #=> "45656646957845"
|
|
57
48
|
#
|
|
58
49
|
# @faker.version 1.9.0
|
|
59
|
-
def reference(
|
|
60
|
-
warn_for_deprecated_arguments do |keywords|
|
|
61
|
-
keywords << :ref if legacy_ref != NOT_GIVEN
|
|
62
|
-
end
|
|
63
|
-
|
|
50
|
+
def reference(ref: '')
|
|
64
51
|
pattern = fetch('invoice.reference.pattern')
|
|
65
52
|
|
|
66
53
|
ref = Base.regexify(/#{pattern}/) if ref.empty?
|
|
@@ -115,7 +102,7 @@ module Faker
|
|
|
115
102
|
mod10_remainder(weighted_sum)
|
|
116
103
|
end
|
|
117
104
|
|
|
118
|
-
# Calculates
|
|
105
|
+
# Calculates weighted sum
|
|
119
106
|
#
|
|
120
107
|
# For example with 12345678, [1,2]
|
|
121
108
|
# Ref.num. 1 2 3 4 5 6 7 8
|
data/lib/faker/default/json.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Faker
|
|
2
4
|
class Json < Base
|
|
3
5
|
require 'json'
|
|
@@ -20,14 +22,9 @@ module Faker
|
|
|
20
22
|
# something to eat - it's all been wrong."}
|
|
21
23
|
#
|
|
22
24
|
# @faker.version 1.9.2
|
|
23
|
-
def shallow_json(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
keywords << :options if legacy_options != NOT_GIVEN
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
options[:key] = 'Faker::' + options[:key]
|
|
30
|
-
options[:value] = 'Faker::' + options[:value]
|
|
25
|
+
def shallow_json(width: 3, options: { key: 'Name.first_name', value: 'Name.first_name' })
|
|
26
|
+
options[:key] = "Faker::#{options[:key]}"
|
|
27
|
+
options[:value] = "Faker::#{options[:value]}"
|
|
31
28
|
|
|
32
29
|
hash = build_shallow_hash(width, options)
|
|
33
30
|
JSON.generate(hash)
|
|
@@ -71,24 +68,12 @@ module Faker
|
|
|
71
68
|
# {"Rick":"Wiza","Bonita":"Bayer","Gardner":"Auer","Felicity":"Abbott"}}}
|
|
72
69
|
#
|
|
73
70
|
# @faker.version 1.9.2
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
warn_for_deprecated_arguments do |keywords|
|
|
78
|
-
keywords << :json if legacy_json != NOT_GIVEN
|
|
79
|
-
end
|
|
80
|
-
warn_for_deprecated_arguments do |keywords|
|
|
81
|
-
keywords << :width if legacy_width != NOT_GIVEN
|
|
82
|
-
end
|
|
83
|
-
warn_for_deprecated_arguments do |keywords|
|
|
84
|
-
keywords << :options if legacy_options != NOT_GIVEN
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
options[:key] = 'Faker::' + options[:key]
|
|
88
|
-
options[:value] = 'Faker::' + options[:value]
|
|
71
|
+
def add_depth_to_json(json: shallow_json, width: 3, options: { key: 'Name.first_name', value: 'Name.first_name' })
|
|
72
|
+
options[:key] = "Faker::#{options[:key]}"
|
|
73
|
+
options[:value] = "Faker::#{options[:value]}"
|
|
89
74
|
|
|
90
75
|
hash = JSON.parse(json)
|
|
91
|
-
hash.
|
|
76
|
+
hash.each_key do |key|
|
|
92
77
|
add_hash_to_bottom(hash, [key], width, options)
|
|
93
78
|
end
|
|
94
79
|
JSON.generate(hash)
|
|
@@ -110,7 +95,7 @@ module Faker
|
|
|
110
95
|
def add_hash_to_bottom(hash, key_array, width, options)
|
|
111
96
|
key_string = build_keys_from_array(key_array)
|
|
112
97
|
if eval("hash#{key_string}").is_a?(::Hash)
|
|
113
|
-
eval("hash#{key_string}").
|
|
98
|
+
eval("hash#{key_string}").each_key do |key|
|
|
114
99
|
key_array << key
|
|
115
100
|
add_hash_to_bottom(hash, key_array, width, options)
|
|
116
101
|
end
|
|
@@ -121,17 +106,20 @@ module Faker
|
|
|
121
106
|
end
|
|
122
107
|
|
|
123
108
|
def add_hash(key_array, hash, width, options)
|
|
124
|
-
string_to_eval = 'hash'
|
|
109
|
+
string_to_eval = 'hash'.dup
|
|
110
|
+
|
|
125
111
|
key_array.length.times do |index|
|
|
126
112
|
string_to_eval << "['#{key_array[index]}']"
|
|
127
113
|
end
|
|
128
114
|
string_to_eval << " = #{build_shallow_hash(width, options)}"
|
|
129
115
|
eval(string_to_eval)
|
|
116
|
+
|
|
130
117
|
hash
|
|
131
118
|
end
|
|
132
119
|
|
|
133
120
|
def build_keys_from_array(key_array)
|
|
134
|
-
key_string = ''
|
|
121
|
+
key_string = ''.dup
|
|
122
|
+
|
|
135
123
|
key_array.each do |value|
|
|
136
124
|
key_string << "['#{value}']"
|
|
137
125
|
end
|