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
|
@@ -151,6 +151,19 @@ module Faker
|
|
|
151
151
|
fetch('company.profession')
|
|
152
152
|
end
|
|
153
153
|
|
|
154
|
+
##
|
|
155
|
+
# Produces a company department.
|
|
156
|
+
#
|
|
157
|
+
# @return [String]
|
|
158
|
+
#
|
|
159
|
+
# @example
|
|
160
|
+
# Faker::Company.department #=> "Information Technology"
|
|
161
|
+
#
|
|
162
|
+
# @faker.version next
|
|
163
|
+
def department
|
|
164
|
+
fetch('company.department')
|
|
165
|
+
end
|
|
166
|
+
|
|
154
167
|
##
|
|
155
168
|
# Produces a company spanish organisation number.
|
|
156
169
|
#
|
|
@@ -162,10 +175,17 @@ module Faker
|
|
|
162
175
|
# @faker.version 1.8.5
|
|
163
176
|
#
|
|
164
177
|
# Get a random Spanish organization number. See more here https://es.wikipedia.org/wiki/N%C3%BAmero_de_identificaci%C3%B3n_fiscal
|
|
165
|
-
def spanish_organisation_number
|
|
178
|
+
def spanish_organisation_number(organization_type: nil)
|
|
166
179
|
# Valid leading character: A, B, C, D, E, F, G, H, J, N, P, Q, R, S, U, V, W
|
|
167
|
-
# 7 digit numbers
|
|
168
|
-
|
|
180
|
+
# format: 1 digit letter (organization type) + 7 digit numbers + 1 digit control (letter or number based on
|
|
181
|
+
# organization type)
|
|
182
|
+
letters = %w[A B C D E F G H J N P Q R S U V W]
|
|
183
|
+
|
|
184
|
+
organization_type = sample(letters) unless letters.include?(organization_type)
|
|
185
|
+
code = format('%07d', rand(10**7))
|
|
186
|
+
control = spanish_cif_control_digit(organization_type, code)
|
|
187
|
+
|
|
188
|
+
[organization_type, code, control].join
|
|
169
189
|
end
|
|
170
190
|
|
|
171
191
|
##
|
|
@@ -289,7 +309,7 @@ module Faker
|
|
|
289
309
|
result = Array.new(3) { rand(1..9) } + Array.new(7) { rand(10) }
|
|
290
310
|
break if (weight_sum(result, weights) % 11) == result[9]
|
|
291
311
|
end
|
|
292
|
-
result.join
|
|
312
|
+
result.join
|
|
293
313
|
end
|
|
294
314
|
|
|
295
315
|
##
|
|
@@ -302,11 +322,7 @@ module Faker
|
|
|
302
322
|
#
|
|
303
323
|
# @faker.version 1.9.1
|
|
304
324
|
# Get a random Polish register of national economy number. More info https://pl.wikipedia.org/wiki/REGON
|
|
305
|
-
def polish_register_of_national_economy(
|
|
306
|
-
warn_for_deprecated_arguments do |keywords|
|
|
307
|
-
keywords << :length if legacy_length != NOT_GIVEN
|
|
308
|
-
end
|
|
309
|
-
|
|
325
|
+
def polish_register_of_national_economy(length: 9)
|
|
310
326
|
raise ArgumentError, 'Length should be 9 or 14' unless [9, 14].include? length
|
|
311
327
|
|
|
312
328
|
random_digits = []
|
|
@@ -314,7 +330,7 @@ module Faker
|
|
|
314
330
|
random_digits = Array.new(length) { rand(10) }
|
|
315
331
|
break if collect_regon_sum(random_digits) == random_digits.last
|
|
316
332
|
end
|
|
317
|
-
random_digits.join
|
|
333
|
+
random_digits.join
|
|
318
334
|
end
|
|
319
335
|
|
|
320
336
|
##
|
|
@@ -327,7 +343,12 @@ module Faker
|
|
|
327
343
|
#
|
|
328
344
|
# @faker.version 1.9.2
|
|
329
345
|
def south_african_pty_ltd_registration_number
|
|
330
|
-
|
|
346
|
+
generate(:string) do |g|
|
|
347
|
+
g.int(length: 4)
|
|
348
|
+
g.lit('/')
|
|
349
|
+
g.int(ranges: [1000..9_999_999_999])
|
|
350
|
+
g.lit('/07')
|
|
351
|
+
end
|
|
331
352
|
end
|
|
332
353
|
|
|
333
354
|
##
|
|
@@ -340,7 +361,18 @@ module Faker
|
|
|
340
361
|
#
|
|
341
362
|
# @faker.version 1.9.2
|
|
342
363
|
def south_african_close_corporation_registration_number
|
|
343
|
-
|
|
364
|
+
generate(:string) do |g|
|
|
365
|
+
g.oneof do |one|
|
|
366
|
+
one.group do |g_|
|
|
367
|
+
g_.lit('CK')
|
|
368
|
+
g_.int(length: 2)
|
|
369
|
+
end
|
|
370
|
+
one.int(length: 4)
|
|
371
|
+
end
|
|
372
|
+
g.lit('/')
|
|
373
|
+
g.int(ranges: [1000..9_999_999_999])
|
|
374
|
+
g.lit('/23')
|
|
375
|
+
end
|
|
344
376
|
end
|
|
345
377
|
|
|
346
378
|
##
|
|
@@ -353,7 +385,12 @@ module Faker
|
|
|
353
385
|
#
|
|
354
386
|
# @faker.version 1.9.2
|
|
355
387
|
def south_african_listed_company_registration_number
|
|
356
|
-
|
|
388
|
+
generate(:string) do |g|
|
|
389
|
+
g.int(length: 4)
|
|
390
|
+
g.lit('/')
|
|
391
|
+
g.int(ranges: [1000..9_999_999_999])
|
|
392
|
+
g.lit('/06')
|
|
393
|
+
end
|
|
357
394
|
end
|
|
358
395
|
|
|
359
396
|
##
|
|
@@ -366,7 +403,12 @@ module Faker
|
|
|
366
403
|
#
|
|
367
404
|
# @faker.version 1.9.2
|
|
368
405
|
def south_african_trust_registration_number
|
|
369
|
-
|
|
406
|
+
generate(:string) do |g|
|
|
407
|
+
g.lit('IT')
|
|
408
|
+
g.int(ranges: [10..9999])
|
|
409
|
+
g.lit('/')
|
|
410
|
+
g.int(ranges: [10..9_999_999_999])
|
|
411
|
+
end
|
|
370
412
|
end
|
|
371
413
|
|
|
372
414
|
##
|
|
@@ -378,11 +420,7 @@ module Faker
|
|
|
378
420
|
# Faker::Company.brazilian_company_number #=> "37205322000500"
|
|
379
421
|
#
|
|
380
422
|
# @faker.version 1.9.2
|
|
381
|
-
def brazilian_company_number(
|
|
382
|
-
warn_for_deprecated_arguments do |keywords|
|
|
383
|
-
keywords << :formatted if legacy_formatted != NOT_GIVEN
|
|
384
|
-
end
|
|
385
|
-
|
|
423
|
+
def brazilian_company_number(formatted: false)
|
|
386
424
|
digits = Array.new(8) { Faker::Number.digit.to_i } + [0, 0, 0, Faker::Number.non_zero_digit.to_i]
|
|
387
425
|
|
|
388
426
|
factors = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2, 6].cycle
|
|
@@ -397,7 +435,18 @@ module Faker
|
|
|
397
435
|
formatted ? format('%s.%s.%s/%s-%s', *number.scan(/(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})/).flatten) : number
|
|
398
436
|
end
|
|
399
437
|
|
|
438
|
+
##
|
|
400
439
|
# Get a random Russian tax number.
|
|
440
|
+
# @param region [String] Any region string
|
|
441
|
+
# @param type [Symbol] Legeal or not, defaults to :legal
|
|
442
|
+
#
|
|
443
|
+
# @return [String]
|
|
444
|
+
# @example
|
|
445
|
+
# Faker::Company.russian_tax_number #=> "0415584064"
|
|
446
|
+
# Faker::Company.russian_tax_number(region: 'AZ') #=> "AZ50124562"
|
|
447
|
+
# Faker::Company.russian_tax_number(region: 'AZ', type: false) #=> "AZ8802315465"
|
|
448
|
+
#
|
|
449
|
+
# @faker.version 1.9.4
|
|
401
450
|
def russian_tax_number(region: nil, type: :legal)
|
|
402
451
|
inn_number(region, type)
|
|
403
452
|
end
|
|
@@ -415,6 +464,61 @@ module Faker
|
|
|
415
464
|
fetch('company.sic_code')
|
|
416
465
|
end
|
|
417
466
|
|
|
467
|
+
##
|
|
468
|
+
# Get a random Indian Goods and Services Tax (GST) number.
|
|
469
|
+
# For more on Indian tax number here:
|
|
470
|
+
# https://simple.wikipedia.org/wiki/GSTIN
|
|
471
|
+
# @params state code [String] Any state code.
|
|
472
|
+
#
|
|
473
|
+
# @return [String]
|
|
474
|
+
# @example
|
|
475
|
+
# Faker::Company.indian_gst_number #=> "15VQPNZ2126J2ZU"
|
|
476
|
+
# Faker::Company.indian_gst_number(state_code: "22") #=> "22ZVWEY6632K0ZN"
|
|
477
|
+
#
|
|
478
|
+
# @faker.version 3.2.1
|
|
479
|
+
def indian_gst_number(state_code: nil)
|
|
480
|
+
# Check if state code is valid
|
|
481
|
+
state_code_ranges = [('02'..'38'), ['98']]
|
|
482
|
+
if state_code && !(state_code_ranges[0].include?(state_code) || state_code == '98')
|
|
483
|
+
raise ArgumentError, 'state code must be in a range of 02 to 38 or 98'
|
|
484
|
+
end
|
|
485
|
+
|
|
486
|
+
PositionalGenerator.new(:string) do |gen|
|
|
487
|
+
# Generate a state code if not given
|
|
488
|
+
if state_code
|
|
489
|
+
gen.lit(state_code, name: :state_code_param)
|
|
490
|
+
else
|
|
491
|
+
gen.letter(name: :state_code_param, length: 1, ranges: state_code_ranges)
|
|
492
|
+
end
|
|
493
|
+
|
|
494
|
+
# Construct taxpayer number
|
|
495
|
+
gen.group(name: :taxpayer_number) do |g_|
|
|
496
|
+
g_.letter(length: 3, ranges: ['A'..'Z'])
|
|
497
|
+
g_.letter(length: 1, ranges: [%w[A B C F G H L J P T K]])
|
|
498
|
+
g_.letter(length: 1, ranges: ['A'..'Z'])
|
|
499
|
+
g_.int(length: 4, ranges: [0..9999])
|
|
500
|
+
g_.letter(length: 1, ranges: ['A'..'Z'])
|
|
501
|
+
end
|
|
502
|
+
|
|
503
|
+
gen.int(name: :registration_number, length: 1, ranges: [0..9])
|
|
504
|
+
|
|
505
|
+
gen.letter(name: :z_char, length: 1, ranges: [['Z']])
|
|
506
|
+
|
|
507
|
+
gen.computed(deps: %i[state_code_param taxpayer_number registration_number]) do |state_code_param, taxpayer_number, registration_number|
|
|
508
|
+
gst_base = "#{state_code_param}#{taxpayer_number}#{registration_number}"
|
|
509
|
+
chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.chars
|
|
510
|
+
values = gst_base.chars
|
|
511
|
+
sum = values.map.with_index do |char, index|
|
|
512
|
+
product = chars.index(char) * (index.odd? ? 2 : 1)
|
|
513
|
+
(product / chars.length).floor + (product % chars.length)
|
|
514
|
+
end.reduce(:+)
|
|
515
|
+
|
|
516
|
+
checksum = (chars.length - (sum % chars.length)) % chars.length
|
|
517
|
+
chars[checksum]
|
|
518
|
+
end
|
|
519
|
+
end.generate
|
|
520
|
+
end
|
|
521
|
+
|
|
418
522
|
private
|
|
419
523
|
|
|
420
524
|
# Mod11 functionality from https://github.com/badmanski/mod11/blob/master/lib/mod11.rb
|
|
@@ -441,7 +545,7 @@ module Faker
|
|
|
441
545
|
def luhn_algorithm(number)
|
|
442
546
|
multiplications = []
|
|
443
547
|
|
|
444
|
-
number.to_s.reverse.
|
|
548
|
+
number.to_s.reverse.chars.each_with_index do |digit, i|
|
|
445
549
|
multiplications << if i.even?
|
|
446
550
|
digit.to_i * 2
|
|
447
551
|
else
|
|
@@ -457,13 +561,11 @@ module Faker
|
|
|
457
561
|
end
|
|
458
562
|
end
|
|
459
563
|
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
control_digit
|
|
564
|
+
if (sum % 10).zero?
|
|
565
|
+
0
|
|
566
|
+
else
|
|
567
|
+
(sum / 10 + 1) * 10 - sum
|
|
568
|
+
end
|
|
467
569
|
end
|
|
468
570
|
|
|
469
571
|
def abn_checksum(abn)
|
|
@@ -489,21 +591,26 @@ module Faker
|
|
|
489
591
|
|
|
490
592
|
def weight_sum(array, weights)
|
|
491
593
|
sum = 0
|
|
492
|
-
(0..weights.size - 1).each do |index|
|
|
594
|
+
(0..(weights.size - 1)).each do |index|
|
|
493
595
|
sum += (array[index] * weights[index])
|
|
494
596
|
end
|
|
495
597
|
sum
|
|
496
598
|
end
|
|
497
599
|
|
|
498
|
-
# rubocop:disable Style/AsciiComments
|
|
499
600
|
#
|
|
500
601
|
# For more on Russian tax number algorithm here:
|
|
501
602
|
# https://ru.wikipedia.org/wiki/Идентификационный_номер_налогоплательщика#Вычисление_контрольных_цифр
|
|
502
603
|
#
|
|
503
604
|
# Range of regions:
|
|
504
605
|
# https://ru.wikipedia.org/wiki/Коды_субъектов_Российской_Федерации
|
|
606
|
+
# region [String] Any region string
|
|
607
|
+
# @param type [Symbol] Legeal or not, defaults to :legal
|
|
505
608
|
#
|
|
506
|
-
#
|
|
609
|
+
# @return [String]
|
|
610
|
+
# @example
|
|
611
|
+
# Faker::Comnpany.russian_tax_number
|
|
612
|
+
# Faker::Comnpany.russian_tax_number(region: 'AZ')
|
|
613
|
+
# Faker::Comnpany.russian_tax_number(region: 'AZ', type: false)
|
|
507
614
|
def inn_number(region, type)
|
|
508
615
|
n10 = [2, 4, 10, 3, 5, 9, 4, 6, 8]
|
|
509
616
|
n11 = [7, 2, 4, 10, 3, 5, 9, 4, 6, 8]
|
|
@@ -528,6 +635,44 @@ module Faker
|
|
|
528
635
|
end % 11 % 10
|
|
529
636
|
).to_s
|
|
530
637
|
end
|
|
638
|
+
|
|
639
|
+
def spanish_cif_control_digit(organization_type, code)
|
|
640
|
+
letters = %w[J A B C D E F G H I]
|
|
641
|
+
|
|
642
|
+
control = code.chars.each_with_index.inject(0) do |sum, (value, index)|
|
|
643
|
+
if (index + 1).even?
|
|
644
|
+
sum + value.to_i
|
|
645
|
+
else
|
|
646
|
+
sum + spanish_b_algorithm(value.to_i)
|
|
647
|
+
end
|
|
648
|
+
end
|
|
649
|
+
|
|
650
|
+
control = control.to_s[-1].to_i
|
|
651
|
+
control = 10 - control unless control.zero?
|
|
652
|
+
|
|
653
|
+
%w[A B C D E F G H J U V].include?(organization_type) ? control : letters[control]
|
|
654
|
+
end
|
|
655
|
+
|
|
656
|
+
def spanish_b_algorithm(value)
|
|
657
|
+
result = value.to_i * 2
|
|
658
|
+
|
|
659
|
+
return result if result < 10
|
|
660
|
+
|
|
661
|
+
result.to_s[0].to_i + result.to_s[1].to_i
|
|
662
|
+
end
|
|
663
|
+
|
|
664
|
+
def calculate_gst_checksum(state_code, taxpayer_number, registration_number)
|
|
665
|
+
gst_base = "#{state_code}#{taxpayer_number}#{registration_number}"
|
|
666
|
+
chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.chars
|
|
667
|
+
values = gst_base.upcase.chars
|
|
668
|
+
sum = values.map.with_index do |char, index|
|
|
669
|
+
product = chars.index(char) * (index.odd? ? 2 : 1)
|
|
670
|
+
(product / chars.length).floor + (product % chars.length)
|
|
671
|
+
end.reduce(:+)
|
|
672
|
+
|
|
673
|
+
checksum = (chars.length - (sum % chars.length)) % chars.length
|
|
674
|
+
chars[checksum]
|
|
675
|
+
end
|
|
531
676
|
end
|
|
532
677
|
end
|
|
533
678
|
end
|
data/lib/faker/default/crypto.rb
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'digest'
|
|
4
|
-
|
|
5
3
|
module Faker
|
|
6
4
|
class Crypto < Base
|
|
7
5
|
class << self
|
|
6
|
+
# Setting the lorem character number lower than the default of
|
|
7
|
+
# 255 reduces the time complexity of each hash algorithm while
|
|
8
|
+
# still returning deterministically unique values. See
|
|
9
|
+
# https://github.com/faker-ruby/faker/pull/2938 for more info.
|
|
10
|
+
MD5_MIN_NUMBER_OF_CHARACTERS = 25
|
|
11
|
+
SHA1_MIN_NUMBER_OF_CHARACTERS = 31
|
|
12
|
+
SHA256_MIN_NUMBER_OF_CHARACTERS = 50
|
|
13
|
+
SHA512_MIN_NUMBER_OF_CHARACTERS = 100
|
|
14
|
+
|
|
8
15
|
##
|
|
9
16
|
# Produces an MD5 hash.
|
|
10
17
|
#
|
|
@@ -15,7 +22,7 @@ module Faker
|
|
|
15
22
|
#
|
|
16
23
|
# @faker.version 1.6.4
|
|
17
24
|
def md5
|
|
18
|
-
Digest::MD5.hexdigest(Lorem.characters)
|
|
25
|
+
OpenSSL::Digest::MD5.hexdigest(Lorem.characters(number: MD5_MIN_NUMBER_OF_CHARACTERS))
|
|
19
26
|
end
|
|
20
27
|
|
|
21
28
|
##
|
|
@@ -28,7 +35,7 @@ module Faker
|
|
|
28
35
|
#
|
|
29
36
|
# @faker.version 1.6.4
|
|
30
37
|
def sha1
|
|
31
|
-
Digest::SHA1.hexdigest(Lorem.characters)
|
|
38
|
+
OpenSSL::Digest::SHA1.hexdigest(Lorem.characters(number: SHA1_MIN_NUMBER_OF_CHARACTERS))
|
|
32
39
|
end
|
|
33
40
|
|
|
34
41
|
##
|
|
@@ -41,7 +48,20 @@ module Faker
|
|
|
41
48
|
#
|
|
42
49
|
# @faker.version 1.6.4
|
|
43
50
|
def sha256
|
|
44
|
-
Digest::SHA256.hexdigest(Lorem.characters)
|
|
51
|
+
OpenSSL::Digest::SHA256.hexdigest(Lorem.characters(number: SHA256_MIN_NUMBER_OF_CHARACTERS))
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
##
|
|
55
|
+
# Produces a SHA512 hash.
|
|
56
|
+
#
|
|
57
|
+
# @return [String]
|
|
58
|
+
#
|
|
59
|
+
# @example
|
|
60
|
+
# Faker::Crypto.sha512 #=> "7b9fc82a6642874833d01b74a7b4fae3d15373193b55cfba47327f8f0afdc8d0ea155b58639a03a887009ef997dab8dd8d36767620d430f6e787e5996e26da80"
|
|
61
|
+
#
|
|
62
|
+
# @faker.version next
|
|
63
|
+
def sha512
|
|
64
|
+
OpenSSL::Digest::SHA512.hexdigest(Lorem.characters(number: SHA512_MIN_NUMBER_OF_CHARACTERS))
|
|
45
65
|
end
|
|
46
66
|
end
|
|
47
67
|
end
|
|
@@ -16,11 +16,7 @@ module Faker
|
|
|
16
16
|
# Faker::CryptoCoin.coin_name #=> "Bitcoin"
|
|
17
17
|
#
|
|
18
18
|
# @faker.version 1.9.2
|
|
19
|
-
def coin_name(
|
|
20
|
-
warn_for_deprecated_arguments do |keywords|
|
|
21
|
-
keywords << :coin if legacy_coin != NOT_GIVEN
|
|
22
|
-
end
|
|
23
|
-
|
|
19
|
+
def coin_name(coin: coin_array)
|
|
24
20
|
coin[COIN_NAME]
|
|
25
21
|
end
|
|
26
22
|
|
|
@@ -33,11 +29,7 @@ module Faker
|
|
|
33
29
|
# Faker::CryptoCoin.acronym #=> "BTC"
|
|
34
30
|
#
|
|
35
31
|
# @faker.version 1.9.2
|
|
36
|
-
def acronym(
|
|
37
|
-
warn_for_deprecated_arguments do |keywords|
|
|
38
|
-
keywords << :coin if legacy_coin != NOT_GIVEN
|
|
39
|
-
end
|
|
40
|
-
|
|
32
|
+
def acronym(coin: coin_array)
|
|
41
33
|
coin[ACRONYM]
|
|
42
34
|
end
|
|
43
35
|
|
|
@@ -50,11 +42,7 @@ module Faker
|
|
|
50
42
|
# Faker::CryptoCoin.url_logo #=> "https://i.imgur.com/EFz61Ei.png"
|
|
51
43
|
#
|
|
52
44
|
# @faker.version 1.9.2
|
|
53
|
-
def url_logo(
|
|
54
|
-
warn_for_deprecated_arguments do |keywords|
|
|
55
|
-
keywords << :coin if legacy_coin != NOT_GIVEN
|
|
56
|
-
end
|
|
57
|
-
|
|
45
|
+
def url_logo(coin: coin_array)
|
|
58
46
|
coin[URL_LOGO]
|
|
59
47
|
end
|
|
60
48
|
|
data/lib/faker/default/date.rb
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
module Faker
|
|
4
4
|
class Date < Base
|
|
5
|
+
DAYS_OF_WEEK = %i[sunday monday tuesday wednesday thursday friday saturday].freeze
|
|
6
|
+
|
|
5
7
|
class << self
|
|
6
8
|
##
|
|
7
9
|
# Produce a random date between two dates.
|
|
@@ -17,20 +19,13 @@ module Faker
|
|
|
17
19
|
# Faker::Date.between(from: 2.days.ago, to: Date.today) #=> #<Date: 2014-09-24>
|
|
18
20
|
#
|
|
19
21
|
# @faker.version 1.0.0
|
|
20
|
-
def 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
|
-
|
|
22
|
+
def between(from:, to:)
|
|
26
23
|
from = get_date_object(from)
|
|
27
24
|
to = get_date_object(to)
|
|
28
25
|
|
|
29
26
|
Faker::Base.rand_in_range(from, to)
|
|
30
27
|
end
|
|
31
28
|
|
|
32
|
-
# rubocop:disable Metrics/ParameterLists
|
|
33
|
-
|
|
34
29
|
##
|
|
35
30
|
# Produce a random date between two dates.
|
|
36
31
|
#
|
|
@@ -46,17 +41,7 @@ module Faker
|
|
|
46
41
|
# Faker::Date.between_except(from: 1.year.ago, to: 1.year.from_now, excepted: Date.today) #=> #<Date: 2014-10-03>
|
|
47
42
|
#
|
|
48
43
|
# @faker.version 1.6.2
|
|
49
|
-
def between_except(
|
|
50
|
-
warn_for_deprecated_arguments do |keywords|
|
|
51
|
-
keywords << :from if legacy_from != NOT_GIVEN
|
|
52
|
-
end
|
|
53
|
-
warn_for_deprecated_arguments do |keywords|
|
|
54
|
-
keywords << :to if legacy_to != NOT_GIVEN
|
|
55
|
-
end
|
|
56
|
-
warn_for_deprecated_arguments do |keywords|
|
|
57
|
-
keywords << :excepted if legacy_excepted != NOT_GIVEN
|
|
58
|
-
end
|
|
59
|
-
|
|
44
|
+
def between_except(from:, to:, excepted:)
|
|
60
45
|
raise ArgumentError, 'From date, to date and excepted date must not be the same' if from == to && to == excepted
|
|
61
46
|
|
|
62
47
|
excepted = get_date_object(excepted)
|
|
@@ -66,27 +51,30 @@ module Faker
|
|
|
66
51
|
break date.to_date if date != excepted
|
|
67
52
|
end
|
|
68
53
|
end
|
|
69
|
-
# rubocop:enable Metrics/ParameterLists
|
|
70
54
|
|
|
71
55
|
##
|
|
72
56
|
# Produce a random date in the future (up to N days).
|
|
73
57
|
#
|
|
58
|
+
# @param from [Integer] The start of the usable forward date range.
|
|
74
59
|
# @param days [Integer] The maximum number of days to go into the future.
|
|
75
60
|
# @return [Date]
|
|
76
61
|
#
|
|
77
|
-
# @example
|
|
62
|
+
# @example if used with or without Rails (Active Support)
|
|
78
63
|
# Faker::Date.forward(days: 23) #=> #<Date: 2014-10-03>
|
|
79
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
|
+
#
|
|
80
71
|
# @faker.version 1.0.0
|
|
81
|
-
def forward(
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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
|
|
85
76
|
|
|
86
|
-
from
|
|
87
|
-
to = ::Date.today + days
|
|
88
|
-
|
|
89
|
-
between(from: from, to: to).to_date
|
|
77
|
+
between(from: since, to: to).to_date
|
|
90
78
|
end
|
|
91
79
|
|
|
92
80
|
##
|
|
@@ -99,11 +87,7 @@ module Faker
|
|
|
99
87
|
# Faker::Date.backward(days: 14) #=> #<Date: 2019-09-12>
|
|
100
88
|
#
|
|
101
89
|
# @faker.version 1.0.0
|
|
102
|
-
def backward(
|
|
103
|
-
warn_for_deprecated_arguments do |keywords|
|
|
104
|
-
keywords << :days if legacy_days != NOT_GIVEN
|
|
105
|
-
end
|
|
106
|
-
|
|
90
|
+
def backward(days: 365)
|
|
107
91
|
from = ::Date.today - days
|
|
108
92
|
to = ::Date.today - 1
|
|
109
93
|
|
|
@@ -121,14 +105,7 @@ module Faker
|
|
|
121
105
|
# Faker::Date.birthday(min_age: 18, max_age: 65) #=> #<Date: 1986-03-28>
|
|
122
106
|
#
|
|
123
107
|
# @faker.version 1.4.3
|
|
124
|
-
def birthday(
|
|
125
|
-
warn_for_deprecated_arguments do |keywords|
|
|
126
|
-
keywords << :min_age if legacy_min_age != NOT_GIVEN
|
|
127
|
-
end
|
|
128
|
-
warn_for_deprecated_arguments do |keywords|
|
|
129
|
-
keywords << :max_age if legacy_max_age != NOT_GIVEN
|
|
130
|
-
end
|
|
131
|
-
|
|
108
|
+
def birthday(min_age: 18, max_age: 65)
|
|
132
109
|
t = ::Date.today
|
|
133
110
|
|
|
134
111
|
from = birthday_date(t, max_age)
|
|
@@ -161,6 +138,52 @@ module Faker
|
|
|
161
138
|
between(from: from, to: to).to_date
|
|
162
139
|
end
|
|
163
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
|
+
|
|
164
187
|
private
|
|
165
188
|
|
|
166
189
|
def birthday_date(date, age)
|
|
@@ -80,11 +80,7 @@ module Faker
|
|
|
80
80
|
# Faker::Demographic.height(unit: :imperial) #=> "6 ft, 2 in"
|
|
81
81
|
#
|
|
82
82
|
# @faker.version 1.7.3
|
|
83
|
-
def height(
|
|
84
|
-
warn_for_deprecated_arguments do |keywords|
|
|
85
|
-
keywords << :unit if legacy_unit != NOT_GIVEN
|
|
86
|
-
end
|
|
87
|
-
|
|
83
|
+
def height(unit: :metric)
|
|
88
84
|
case unit
|
|
89
85
|
when :imperial
|
|
90
86
|
inches = rand_in_range(57, 86)
|