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
data/History.md
DELETED
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
## v1.6.5 (2016-07-08)
|
|
2
|
-
* Removed Faker::ChuckNorris.name
|
|
3
|
-
|
|
4
|
-
## v1.6.4 (2016-07-06)
|
|
5
|
-
* Removed support for Ruby 1.9.3
|
|
6
|
-
* Added Faker::ChuckNorris, Faker::Crypto, Faker::Educator, Faker::File, Faker::Music, Faker::Space, Faker::Vehicle, and Faker::Yoda
|
|
7
|
-
* Fixed bug with credit card types
|
|
8
|
-
* DST fixes in Faker::Time
|
|
9
|
-
* Added Faker::Name.name_with_middle
|
|
10
|
-
* Added Faker::Code.imei
|
|
11
|
-
* Added Faker::Code.asin
|
|
12
|
-
* Added Faker::Lorem.question and Faker::Lorem.questions
|
|
13
|
-
* Added Faker::Internet.private_ip_v4_address
|
|
14
|
-
* Added Faker::Company.australian_business_number
|
|
15
|
-
* Other miscellaneous fixes and locale updates
|
|
16
|
-
|
|
17
|
-
## v1.6.3 (2016-02-23)
|
|
18
|
-
* Fix for UTF problem in Ruby 1.9.3
|
|
19
|
-
* Fix for Faker::StarWars.character
|
|
20
|
-
* Updated sv locale
|
|
21
|
-
|
|
22
|
-
## v1.6.2 (2016-02-20)
|
|
23
|
-
* Fix for locale-switching (Russian email addresses)
|
|
24
|
-
* Added Faker::Beer, Faker::Boolean, Faker::Cat, Faker::StarWars, and Faker::Superhero
|
|
25
|
-
* Added Faker::Color.color_name
|
|
26
|
-
* Added Faker::Date.between_except
|
|
27
|
-
* Fixed Faker::Internet.ip_v4_cidr and Faker::Internet.ip_v6_cidr
|
|
28
|
-
* Added locales: ca, ca-CAT, da-DK, fi-FI, and pt
|
|
29
|
-
|
|
30
|
-
## v1.6.1 (2015-11-23)
|
|
31
|
-
* Fix for locale issues in tests
|
|
32
|
-
|
|
33
|
-
## v1.6.0 (2015-11-23)
|
|
34
|
-
* Lots of bug fixes -- most notably, a fix for email addresses and domains in non-en locales
|
|
35
|
-
* Updated locales: de, en-AU, en-NZ, en-SG, en-US, en-au-ocker, en, es, fr, he, it, ja, nb-NO, pl, pt-BR, sk, and zh-CN
|
|
36
|
-
* Updated classes: Address, Avatar, Book, Code, Commerce, Company, Hipster, IDNumber, Internet, Number, Placeholdit, Shakespeare, and Time
|
|
37
|
-
|
|
38
|
-
## v1.5.0 (2015-08-17)
|
|
39
|
-
* Added logos
|
|
40
|
-
* Added Slack Emoji
|
|
41
|
-
* Updated image generators
|
|
42
|
-
* Updated Dutch Locale
|
|
43
|
-
* Added support for generating RGB values, HSL colors, alpha channel, and HSLA colors
|
|
44
|
-
* Added locale for Uganda
|
|
45
|
-
* Added basic Ukrainian support
|
|
46
|
-
* Added university name generator
|
|
47
|
-
* Updated documentation
|
|
48
|
-
* Updated a variety of locales
|
|
49
|
-
* Various fixes
|
|
50
|
-
|
|
51
|
-
## v1.4.3 (2014-08-15)
|
|
52
|
-
* Updated Russian locale
|
|
53
|
-
* Added EIN generator
|
|
54
|
-
* Fixed Swedish locale
|
|
55
|
-
* Added birthday to Faker::Date
|
|
56
|
-
* Added Faker::App
|
|
57
|
-
|
|
58
|
-
## v1.4.2 (2014-07-15)
|
|
59
|
-
* Added Swedish locale
|
|
60
|
-
* README update
|
|
61
|
-
|
|
62
|
-
## v1.4.1 (2014-07-04)
|
|
63
|
-
* Bugfix and cleanup
|
|
64
|
-
|
|
65
|
-
## v1.4.0 (2014-07-03)
|
|
66
|
-
* Many enhancements and bugfixes
|
|
67
|
-
|
|
68
|
-
## v1.3.0 (2014-03-08)
|
|
69
|
-
* Many enhancements and few bugfixes
|
|
70
|
-
|
|
71
|
-
## v1.2.0 (2013-07-27)
|
|
72
|
-
* Many major and minor enhancements :)
|
|
73
|
-
|
|
74
|
-
## v1.1.2 (2012-09-18)
|
|
75
|
-
* 1 minor change:
|
|
76
|
-
* Fixed Ruby 1.8 compatibility
|
|
77
|
-
|
|
78
|
-
## v1.1.1 (2012-09-17)
|
|
79
|
-
* 1 minor change:
|
|
80
|
-
* Removed ja locale because of parse errors
|
|
81
|
-
|
|
82
|
-
## v1.1.0 (2012-09-15)
|
|
83
|
-
* 1 major change:
|
|
84
|
-
* Removed deprecated methods from Address: earth_country, us_state, us_state_abbr, uk_postcode, uk_county
|
|
85
|
-
* Many minor changes (please see github pull requests for credits)
|
|
86
|
-
* Added many localizations
|
|
87
|
-
* Added range and array support for Lorem
|
|
88
|
-
|
|
89
|
-
## v1.0.1 (2011-09-27)
|
|
90
|
-
* 1 minor enhancement
|
|
91
|
-
* Added safe_email method to get someaddress@example.com [Kazimierz Kiełkowicz]
|
|
92
|
-
* 1 bug fix:
|
|
93
|
-
* Use the locale fallback properly when parsing string formats
|
|
94
|
-
|
|
95
|
-
## v1.0.0 (2011-09-08)
|
|
96
|
-
* 2 major enhancements
|
|
97
|
-
* Moved all formats to locale files
|
|
98
|
-
* Stopped interfering with I18n's global settings for fallbacks
|
|
99
|
-
* 3 minor bug fixes:
|
|
100
|
-
* Ruby 1.9.2 fixes [eMxyzptlk]
|
|
101
|
-
* UTF8 fixes [maxmiliano]
|
|
102
|
-
* Updated IPv4 generator to return valid addresses [Sylvain Desbureaux]
|
|
103
|
-
* Many minor enhancements:
|
|
104
|
-
* Added bork locale for bork-ified lorem [johnbentcope]
|
|
105
|
-
* Added IPv6 address generator [jc00ke]
|
|
106
|
-
* Removed deprecation warnings for Array#rand [chrismarshall]
|
|
107
|
-
* Added German translation and I18n improvments [Matthias Kühnert]
|
|
108
|
-
* Added Dutch translation [moretea]
|
|
109
|
-
* Added Lat/Long generator [Andy Callaghan]
|
|
110
|
-
* Added buzzword-laden title generator [supercleanse]
|
|
111
|
-
* Added optional extended wordlist for lorem [chriskottom]
|
|
112
|
-
* Updated German translation [Jan Schwenzien]
|
|
113
|
-
* Locale improvements [suweller]
|
|
114
|
-
* Added limit to lorem generator [darrenterhune]
|
|
115
|
-
* Added Brazilian Portuguese translation [maxmiliano]
|
|
116
|
-
* Added Australian translation [madeindata]
|
|
117
|
-
* Added Canadian translation [igbanam]
|
|
118
|
-
* Added Norwegian translation [kytrinyx]
|
|
119
|
-
* Lots of translation-related cleanup [kytrinyx]
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
## v0.9.5 (2011-01-27)
|
|
123
|
-
* 1 minor bug fix:
|
|
124
|
-
* Fixed YAML [Aaron Patterson]
|
|
125
|
-
* 3 minor enhancements:
|
|
126
|
-
* Added default rake task to run all tests [Aaron Patterson]
|
|
127
|
-
* Removed shuffle method [Aaron Patterson]
|
|
128
|
-
* Use psych if present [Aaron Patterson]
|
|
129
|
-
|
|
130
|
-
## v0.9.4 (2010-12-29)
|
|
131
|
-
* 1 minor bug fix:
|
|
132
|
-
* Stopped getting in the way of Rails' late locale loading
|
|
133
|
-
|
|
134
|
-
## v0.9.3 (2010-12-28)
|
|
135
|
-
* 1 minor enhancement:
|
|
136
|
-
* Added a faker namespace for translations
|
|
137
|
-
|
|
138
|
-
## v0.9.2 (2010-12-22)
|
|
139
|
-
* 1 bug fix:
|
|
140
|
-
* Stopped stomping on I18n load path
|
|
141
|
-
|
|
142
|
-
## v0.9.1 (2010-12-22)
|
|
143
|
-
* 1 bug fix:
|
|
144
|
-
* Stopped setting I18n default locale
|
|
145
|
-
* 1 major enhancement:
|
|
146
|
-
* Added method_missing to Address to add methods based on data in locale files
|
|
147
|
-
* 1 minor enhancement:
|
|
148
|
-
* Added Swiss locale [Lukas Westermann]
|
|
149
|
-
|
|
150
|
-
## v0.9.0 (2010-12-21)
|
|
151
|
-
* 1 major enhancement:
|
|
152
|
-
* Moved strings and some formats to locale files
|
|
153
|
-
|
|
154
|
-
## v0.3.1 (2008-04-03)
|
|
155
|
-
* 1 minor enhancement:
|
|
156
|
-
* Added city to Address
|
|
157
|
-
|
|
158
|
-
## v0.3.0 (2008-01-01)
|
|
159
|
-
* 3 major enhancements:
|
|
160
|
-
* Added Lorem to generate fake Latin
|
|
161
|
-
* Added secondary_address to Address, and made inclusion of
|
|
162
|
-
secondary address in street_address optional (false by
|
|
163
|
-
default).
|
|
164
|
-
* Added UK address methods [Caius Durling]
|
|
165
|
-
|
|
166
|
-
## v0.2.1 (2007-12-05)
|
|
167
|
-
* 1 major enhancement:
|
|
168
|
-
* Dropped facets to avoid conflict with ActiveSupport
|
|
169
|
-
* 2 minor enhancements:
|
|
170
|
-
* Changed the output of user_name to randomly separate with a . or _
|
|
171
|
-
* Added a few tests
|
|
172
|
-
|
|
173
|
-
## v0.1.0 (2007-11-22)
|
|
174
|
-
|
|
175
|
-
* 1 major enhancement:
|
|
176
|
-
* Initial release
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Faker
|
|
4
|
-
class BossaNova < Base
|
|
5
|
-
class << self
|
|
6
|
-
##
|
|
7
|
-
# Produces the name of a bossa nova artist.
|
|
8
|
-
#
|
|
9
|
-
# @return [String]
|
|
10
|
-
#
|
|
11
|
-
# @example
|
|
12
|
-
# Faker::BossaNova.artist #=> "Tom Jobin"
|
|
13
|
-
#
|
|
14
|
-
# @faker.version 1.8.3
|
|
15
|
-
def artist
|
|
16
|
-
fetch('bossa_nova.artists')
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
##
|
|
20
|
-
# Produces a bossa nova song.
|
|
21
|
-
#
|
|
22
|
-
# @return [String]
|
|
23
|
-
#
|
|
24
|
-
# @example
|
|
25
|
-
# Faker::BossaNova.song #=> "Chega de Saudade"
|
|
26
|
-
#
|
|
27
|
-
# @faker.version 1.8.3
|
|
28
|
-
def song
|
|
29
|
-
fetch('bossa_nova.songs')
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Faker
|
|
4
|
-
class Fillmurray < Base
|
|
5
|
-
class << self
|
|
6
|
-
# rubocop:disable Metrics/ParameterLists
|
|
7
|
-
|
|
8
|
-
##
|
|
9
|
-
# Produces the URL of an image from Fill Murray, a site which hosts
|
|
10
|
-
# exclusively photographs of actor Bill Murray.
|
|
11
|
-
#
|
|
12
|
-
# @param grayscale [Boolean] Whether to return a grayscale image.
|
|
13
|
-
# @param width [Integer] The iamage width.
|
|
14
|
-
# @param height [Integer] The image height.
|
|
15
|
-
# @return [String]
|
|
16
|
-
#
|
|
17
|
-
# @example
|
|
18
|
-
# Faker::Fillmurray.image #=> "https://www.fillmurray.com/300/300"
|
|
19
|
-
#
|
|
20
|
-
# @example
|
|
21
|
-
# Faker::Fillmurray.image(grayscale: true)
|
|
22
|
-
# #=> "https://fillmurray.com/g/300/300"
|
|
23
|
-
#
|
|
24
|
-
# @example
|
|
25
|
-
# Faker::Fillmurray.image(grayscale: false, width: 200, height: 400)
|
|
26
|
-
# #=> "https://fillmurray.com/200/400"
|
|
27
|
-
#
|
|
28
|
-
# @faker.version 1.7.1
|
|
29
|
-
def image(legacy_grayscale = NOT_GIVEN, legacy_width = NOT_GIVEN, legacy_height = NOT_GIVEN, grayscale: false, width: 200, height: 200)
|
|
30
|
-
warn_for_deprecated_arguments do |keywords|
|
|
31
|
-
keywords << :grayscale if legacy_grayscale != NOT_GIVEN
|
|
32
|
-
keywords << :width if legacy_width != NOT_GIVEN
|
|
33
|
-
keywords << :height if legacy_height != NOT_GIVEN
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
raise ArgumentError, 'Width should be a number' unless width.to_s =~ /^\d+$/
|
|
37
|
-
raise ArgumentError, 'Height should be a number' unless height.to_s =~ /^\d+$/
|
|
38
|
-
raise ArgumentError, 'Grayscale should be a boolean' unless [true, false].include?(grayscale)
|
|
39
|
-
|
|
40
|
-
"https://www.fillmurray.com#{'/g' if grayscale == true}/#{width}/#{height}"
|
|
41
|
-
end
|
|
42
|
-
# rubocop:enable Metrics/ParameterLists
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
|
@@ -1,358 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Faker
|
|
4
|
-
class Internet < Base
|
|
5
|
-
class << self
|
|
6
|
-
def email(legacy_name = NOT_GIVEN, legacy_separators = NOT_GIVEN, name: nil, separators: nil, domain: nil)
|
|
7
|
-
warn_for_deprecated_arguments do |keywords|
|
|
8
|
-
keywords << :name if legacy_name != NOT_GIVEN
|
|
9
|
-
keywords << :separators if legacy_separators != NOT_GIVEN
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
local_part = if separators
|
|
13
|
-
username(specifier: name, separators: separators)
|
|
14
|
-
else
|
|
15
|
-
username(specifier: name)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
sanitized_local_part = sanitize_email_local_part(local_part)
|
|
19
|
-
construct_email(sanitized_local_part, domain_name(domain: domain))
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def free_email(legacy_name = NOT_GIVEN, name: nil)
|
|
23
|
-
warn_for_deprecated_arguments do |keywords|
|
|
24
|
-
keywords << :name if legacy_name != NOT_GIVEN
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
construct_email(
|
|
28
|
-
sanitize_email_local_part(username(specifier: name)),
|
|
29
|
-
fetch('internet.free_email')
|
|
30
|
-
)
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def safe_email(legacy_name = NOT_GIVEN, name: nil)
|
|
34
|
-
warn_for_deprecated_arguments do |keywords|
|
|
35
|
-
keywords << :name if legacy_name != NOT_GIVEN
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
construct_email(
|
|
39
|
-
sanitize_email_local_part(username(specifier: name)),
|
|
40
|
-
'example.' + sample(%w[org com net])
|
|
41
|
-
)
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def username(legacy_specifier = NOT_GIVEN, legacy_separators = NOT_GIVEN, specifier: nil, separators: %w[. _])
|
|
45
|
-
warn_for_deprecated_arguments do |keywords|
|
|
46
|
-
keywords << :specifier if legacy_specifier != NOT_GIVEN
|
|
47
|
-
keywords << :separators if legacy_separators != NOT_GIVEN
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
with_locale(:en) do
|
|
51
|
-
return shuffle(specifier.scan(/[[:word:]]+/)).join(sample(separators)).downcase if specifier.respond_to?(:scan)
|
|
52
|
-
|
|
53
|
-
if specifier.is_a?(Integer)
|
|
54
|
-
# If specifier is Integer and has large value, Argument error exception is raised to overcome memory full error
|
|
55
|
-
raise ArgumentError, 'Given argument is too large' if specifier > 10**6
|
|
56
|
-
|
|
57
|
-
tries = 0 # Don't try forever in case we get something like 1_000_000.
|
|
58
|
-
result = nil
|
|
59
|
-
loop do
|
|
60
|
-
result = username(specifier: nil, separators: separators)
|
|
61
|
-
tries += 1
|
|
62
|
-
break unless result.length < specifier && tries < 7
|
|
63
|
-
end
|
|
64
|
-
return result * (specifier / result.length + 1) if specifier.positive?
|
|
65
|
-
elsif specifier.is_a?(Range)
|
|
66
|
-
tries = 0
|
|
67
|
-
result = nil
|
|
68
|
-
loop do
|
|
69
|
-
result = username(specifier: specifier.min, separators: separators)
|
|
70
|
-
tries += 1
|
|
71
|
-
break unless !specifier.include?(result.length) && tries < 7
|
|
72
|
-
end
|
|
73
|
-
return result[0...specifier.max]
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
sample([
|
|
77
|
-
Char.prepare(Name.first_name),
|
|
78
|
-
[Name.first_name, Name.last_name].map do |name|
|
|
79
|
-
Char.prepare(name)
|
|
80
|
-
end.join(sample(separators))
|
|
81
|
-
])
|
|
82
|
-
end
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
# rubocop:disable Metrics/ParameterLists
|
|
86
|
-
|
|
87
|
-
##
|
|
88
|
-
# Produces a randomized string of characters suitable for passwords
|
|
89
|
-
#
|
|
90
|
-
# @param min_length [Integer] The minimum length of the password
|
|
91
|
-
# @param max_length [Integer] The maximum length of the password
|
|
92
|
-
# @param mix_case [Boolean] Toggles if uppercased letters are allowed. If true, at least one will be added.
|
|
93
|
-
# @param special_characters [Boolean] Toggles if special characters are allowed. If true, at least one will be added.
|
|
94
|
-
#
|
|
95
|
-
# @return [String]
|
|
96
|
-
#
|
|
97
|
-
# @example
|
|
98
|
-
# Faker::Internet.password #=> "Vg5mSvY1UeRg7"
|
|
99
|
-
# @example
|
|
100
|
-
# Faker::Internet.password(min_length: 8) #=> "YfGjIk0hGzDqS0"
|
|
101
|
-
# @example
|
|
102
|
-
# Faker::Internet.password(min_length: 10, max_length: 20) #=> "EoC9ShWd1hWq4vBgFw"
|
|
103
|
-
# @example
|
|
104
|
-
# Faker::Internet.password(min_length: 10, max_length: 20, mix_case: true) #=> "3k5qS15aNmG"
|
|
105
|
-
# @example
|
|
106
|
-
# Faker::Internet.password(min_length: 10, max_length: 20, mix_case: true, special_characters: true) #=> "*%NkOnJsH4"
|
|
107
|
-
#
|
|
108
|
-
# @faker.version 2.1.3
|
|
109
|
-
def password(legacy_min_length = NOT_GIVEN, legacy_max_length = NOT_GIVEN, legacy_mix_case = NOT_GIVEN, legacy_special_characters = NOT_GIVEN, min_length: 8, max_length: 16, mix_case: true, special_characters: false)
|
|
110
|
-
# rubocop:enable Metrics/ParameterLists
|
|
111
|
-
warn_for_deprecated_arguments do |keywords|
|
|
112
|
-
keywords << :min_length if legacy_min_length != NOT_GIVEN
|
|
113
|
-
keywords << :max_length if legacy_max_length != NOT_GIVEN
|
|
114
|
-
keywords << :mix_case if legacy_mix_case != NOT_GIVEN
|
|
115
|
-
keywords << :special_characters if legacy_special_characters != NOT_GIVEN
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
min_alpha = mix_case ? 2 : 0
|
|
119
|
-
temp = Lorem.characters(number: min_length, min_alpha: min_alpha)
|
|
120
|
-
diff_length = max_length - min_length
|
|
121
|
-
|
|
122
|
-
if diff_length.positive?
|
|
123
|
-
diff_rand = rand(diff_length + 1)
|
|
124
|
-
temp += Lorem.characters(number: diff_rand)
|
|
125
|
-
end
|
|
126
|
-
|
|
127
|
-
if mix_case
|
|
128
|
-
alpha_count = 0
|
|
129
|
-
temp.chars.each_with_index do |char, index|
|
|
130
|
-
if char =~ /[[:alpha:]]/
|
|
131
|
-
temp[index] = char.upcase if alpha_count.even?
|
|
132
|
-
alpha_count += 1
|
|
133
|
-
end
|
|
134
|
-
end
|
|
135
|
-
end
|
|
136
|
-
|
|
137
|
-
if special_characters
|
|
138
|
-
chars = %w[! @ # $ % ^ & *]
|
|
139
|
-
rand(1..min_length).times do |i|
|
|
140
|
-
temp[i] = chars[rand(chars.length)]
|
|
141
|
-
end
|
|
142
|
-
end
|
|
143
|
-
|
|
144
|
-
temp
|
|
145
|
-
end
|
|
146
|
-
|
|
147
|
-
def domain_name(legacy_subdomain = NOT_GIVEN, subdomain: false, domain: nil)
|
|
148
|
-
warn_for_deprecated_arguments do |keywords|
|
|
149
|
-
keywords << :subdomain if legacy_subdomain != NOT_GIVEN
|
|
150
|
-
end
|
|
151
|
-
|
|
152
|
-
with_locale(:en) do
|
|
153
|
-
if domain
|
|
154
|
-
domain
|
|
155
|
-
.split('.')
|
|
156
|
-
.map { |domain_part| Char.prepare(domain_part) }
|
|
157
|
-
.tap do |domain_elements|
|
|
158
|
-
domain_elements << domain_suffix if domain_elements.length < 2
|
|
159
|
-
domain_elements.unshift(Char.prepare(domain_word)) if subdomain && domain_elements.length < 3
|
|
160
|
-
end.join('.')
|
|
161
|
-
else
|
|
162
|
-
[domain_word, domain_suffix].tap do |domain_elements|
|
|
163
|
-
domain_elements.unshift(Char.prepare(domain_word)) if subdomain
|
|
164
|
-
end.join('.')
|
|
165
|
-
end
|
|
166
|
-
end
|
|
167
|
-
end
|
|
168
|
-
|
|
169
|
-
def fix_umlauts(legacy_string = NOT_GIVEN, string: '')
|
|
170
|
-
warn_for_deprecated_arguments do |keywords|
|
|
171
|
-
keywords << :string if legacy_string != NOT_GIVEN
|
|
172
|
-
end
|
|
173
|
-
|
|
174
|
-
Char.fix_umlauts(string)
|
|
175
|
-
end
|
|
176
|
-
|
|
177
|
-
def domain_word
|
|
178
|
-
with_locale(:en) { Char.prepare(Company.name.split(' ').first) }
|
|
179
|
-
end
|
|
180
|
-
|
|
181
|
-
def domain_suffix
|
|
182
|
-
fetch('internet.domain_suffix')
|
|
183
|
-
end
|
|
184
|
-
|
|
185
|
-
def mac_address(legacy_prefix = NOT_GIVEN, prefix: '')
|
|
186
|
-
warn_for_deprecated_arguments do |keywords|
|
|
187
|
-
keywords << :prefix if legacy_prefix != NOT_GIVEN
|
|
188
|
-
end
|
|
189
|
-
|
|
190
|
-
prefix_digits = prefix.split(':').map { |d| d.to_i(16) }
|
|
191
|
-
address_digits = Array.new((6 - prefix_digits.size)) { rand(256) }
|
|
192
|
-
(prefix_digits + address_digits).map { |d| format('%02x', d) }.join(':')
|
|
193
|
-
end
|
|
194
|
-
|
|
195
|
-
def ip_v4_address
|
|
196
|
-
[rand_in_range(0, 255), rand_in_range(0, 255),
|
|
197
|
-
rand_in_range(0, 255), rand_in_range(0, 255)].join('.')
|
|
198
|
-
end
|
|
199
|
-
|
|
200
|
-
def private_ip_v4_address
|
|
201
|
-
addr = nil
|
|
202
|
-
loop do
|
|
203
|
-
addr = ip_v4_address
|
|
204
|
-
break if private_net_checker[addr]
|
|
205
|
-
end
|
|
206
|
-
addr
|
|
207
|
-
end
|
|
208
|
-
|
|
209
|
-
def public_ip_v4_address
|
|
210
|
-
addr = nil
|
|
211
|
-
loop do
|
|
212
|
-
addr = ip_v4_address
|
|
213
|
-
break unless reserved_net_checker[addr]
|
|
214
|
-
end
|
|
215
|
-
addr
|
|
216
|
-
end
|
|
217
|
-
|
|
218
|
-
def private_nets_regex
|
|
219
|
-
[
|
|
220
|
-
/^10\./, # 10.0.0.0 - 10.255.255.255
|
|
221
|
-
/^100\.(6[4-9]|[7-9]\d|1[0-1]\d|12[0-7])\./, # 100.64.0.0 - 100.127.255.255
|
|
222
|
-
/^127\./, # 127.0.0.0 - 127.255.255.255
|
|
223
|
-
/^169\.254\./, # 169.254.0.0 - 169.254.255.255
|
|
224
|
-
/^172\.(1[6-9]|2\d|3[0-1])\./, # 172.16.0.0 - 172.31.255.255
|
|
225
|
-
/^192\.0\.0\./, # 192.0.0.0 - 192.0.0.255
|
|
226
|
-
/^192\.168\./, # 192.168.0.0 - 192.168.255.255
|
|
227
|
-
/^198\.(1[8-9])\./ # 198.18.0.0 - 198.19.255.255
|
|
228
|
-
]
|
|
229
|
-
end
|
|
230
|
-
|
|
231
|
-
def private_net_checker
|
|
232
|
-
->(addr) { private_nets_regex.any? { |net| net =~ addr } }
|
|
233
|
-
end
|
|
234
|
-
|
|
235
|
-
def reserved_nets_regex
|
|
236
|
-
[
|
|
237
|
-
/^0\./, # 0.0.0.0 - 0.255.255.255
|
|
238
|
-
/^192\.0\.2\./, # 192.0.2.0 - 192.0.2.255
|
|
239
|
-
/^192\.88\.99\./, # 192.88.99.0 - 192.88.99.255
|
|
240
|
-
/^198\.51\.100\./, # 198.51.100.0 - 198.51.100.255
|
|
241
|
-
/^203\.0\.113\./, # 203.0.113.0 - 203.0.113.255
|
|
242
|
-
/^(22[4-9]|23\d)\./, # 224.0.0.0 - 239.255.255.255
|
|
243
|
-
/^(24\d|25[0-5])\./ # 240.0.0.0 - 255.255.255.254 and 255.255.255.255
|
|
244
|
-
]
|
|
245
|
-
end
|
|
246
|
-
|
|
247
|
-
def reserved_net_checker
|
|
248
|
-
->(addr) { (private_nets_regex + reserved_nets_regex).any? { |net| net =~ addr } }
|
|
249
|
-
end
|
|
250
|
-
|
|
251
|
-
def ip_v4_cidr
|
|
252
|
-
"#{ip_v4_address}/#{rand(1..31)}"
|
|
253
|
-
end
|
|
254
|
-
|
|
255
|
-
def ip_v6_address
|
|
256
|
-
(1..8).map { rand(65_536).to_s(16) }.join(':')
|
|
257
|
-
end
|
|
258
|
-
|
|
259
|
-
def ip_v6_cidr
|
|
260
|
-
"#{ip_v6_address}/#{rand(1..127)}"
|
|
261
|
-
end
|
|
262
|
-
|
|
263
|
-
# rubocop:disable Metrics/ParameterLists
|
|
264
|
-
def url(legacy_host = NOT_GIVEN, legacy_path = NOT_GIVEN, legacy_scheme = NOT_GIVEN, host: domain_name, path: "/#{username}", scheme: 'http')
|
|
265
|
-
# rubocop:enable Metrics/ParameterLists
|
|
266
|
-
warn_for_deprecated_arguments do |keywords|
|
|
267
|
-
keywords << :host if legacy_host != NOT_GIVEN
|
|
268
|
-
keywords << :path if legacy_path != NOT_GIVEN
|
|
269
|
-
keywords << :scheme if legacy_scheme != NOT_GIVEN
|
|
270
|
-
end
|
|
271
|
-
|
|
272
|
-
"#{scheme}://#{host}#{path}"
|
|
273
|
-
end
|
|
274
|
-
|
|
275
|
-
def slug(legacy_words = NOT_GIVEN, legacy_glue = NOT_GIVEN, words: nil, glue: nil)
|
|
276
|
-
warn_for_deprecated_arguments do |keywords|
|
|
277
|
-
keywords << :words if legacy_words != NOT_GIVEN
|
|
278
|
-
keywords << :glue if legacy_glue != NOT_GIVEN
|
|
279
|
-
end
|
|
280
|
-
|
|
281
|
-
glue ||= sample(%w[- _])
|
|
282
|
-
(words || Faker::Lorem.words(number: 2).join(' ')).delete(',.').gsub(' ', glue).downcase
|
|
283
|
-
end
|
|
284
|
-
|
|
285
|
-
def device_token
|
|
286
|
-
shuffle(rand(16**64).to_s(16).rjust(64, '0').chars.to_a).join
|
|
287
|
-
end
|
|
288
|
-
|
|
289
|
-
def user_agent(legacy_vendor = NOT_GIVEN, vendor: nil)
|
|
290
|
-
warn_for_deprecated_arguments do |keywords|
|
|
291
|
-
keywords << :vendor if legacy_vendor != NOT_GIVEN
|
|
292
|
-
end
|
|
293
|
-
|
|
294
|
-
agent_hash = translate('faker.internet.user_agent')
|
|
295
|
-
agents = vendor.respond_to?(:to_sym) && agent_hash[vendor.to_sym] || agent_hash[sample(agent_hash.keys)]
|
|
296
|
-
sample(agents)
|
|
297
|
-
end
|
|
298
|
-
|
|
299
|
-
def uuid
|
|
300
|
-
# borrowed from: https://github.com/ruby/ruby/blob/d48783bb0236db505fe1205d1d9822309de53a36/lib/securerandom.rb#L250
|
|
301
|
-
ary = Faker::Config.random.bytes(16).unpack('NnnnnN')
|
|
302
|
-
ary[2] = (ary[2] & 0x0fff) | 0x4000
|
|
303
|
-
ary[3] = (ary[3] & 0x3fff) | 0x8000
|
|
304
|
-
'%08x-%04x-%04x-%04x-%04x%08x' % ary # rubocop:disable Style/FormatString
|
|
305
|
-
end
|
|
306
|
-
|
|
307
|
-
##
|
|
308
|
-
# Produces a random string of alphabetic characters, (no digits)
|
|
309
|
-
#
|
|
310
|
-
# @param length [Integer] The length of the string to generate
|
|
311
|
-
# @param padding [Boolean] Toggles if a final equal '=' will be added.
|
|
312
|
-
# @param urlsafe [Boolean] Toggles charset to '-' and '_' instead of '+' and '/'.
|
|
313
|
-
#
|
|
314
|
-
# @return [String]
|
|
315
|
-
#
|
|
316
|
-
# @example
|
|
317
|
-
# Faker::Internet.base64
|
|
318
|
-
# #=> "r_hbZ2DSD-ZACzZT"
|
|
319
|
-
# @example
|
|
320
|
-
# Faker::Internet.base64(length: 4, padding: true, urlsafe: false)
|
|
321
|
-
# #=> "x1/R="
|
|
322
|
-
#
|
|
323
|
-
# @faker.version 2.11.0
|
|
324
|
-
def base64(length: 16, padding: false, urlsafe: true)
|
|
325
|
-
char_range = [
|
|
326
|
-
Array('0'..'9'),
|
|
327
|
-
Array('A'..'Z'),
|
|
328
|
-
Array('a'..'z'),
|
|
329
|
-
urlsafe ? %w[- _] : %w[+ /]
|
|
330
|
-
].flatten
|
|
331
|
-
s = Array.new(length) { sample(char_range) }.join
|
|
332
|
-
s += '=' if padding
|
|
333
|
-
s
|
|
334
|
-
end
|
|
335
|
-
|
|
336
|
-
alias user_name username
|
|
337
|
-
|
|
338
|
-
private
|
|
339
|
-
|
|
340
|
-
def sanitize_email_local_part(local_part)
|
|
341
|
-
char_range = [
|
|
342
|
-
Array('0'..'9'),
|
|
343
|
-
Array('A'..'Z'),
|
|
344
|
-
Array('a'..'z'),
|
|
345
|
-
"!#$%&'*+-/=?^_`{|}~.".split(//)
|
|
346
|
-
].flatten
|
|
347
|
-
|
|
348
|
-
local_part.split(//).map do |char|
|
|
349
|
-
char_range.include?(char) ? char : '#'
|
|
350
|
-
end.join
|
|
351
|
-
end
|
|
352
|
-
|
|
353
|
-
def construct_email(local_part, domain_name)
|
|
354
|
-
[local_part, domain_name].join('@')
|
|
355
|
-
end
|
|
356
|
-
end
|
|
357
|
-
end
|
|
358
|
-
end
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Faker
|
|
4
|
-
class LoremPixel < Base
|
|
5
|
-
class << self
|
|
6
|
-
SUPPORTED_CATEGORIES = %w[abstract
|
|
7
|
-
animals
|
|
8
|
-
business
|
|
9
|
-
cats
|
|
10
|
-
city
|
|
11
|
-
food
|
|
12
|
-
nightlife
|
|
13
|
-
fashion
|
|
14
|
-
people
|
|
15
|
-
nature
|
|
16
|
-
sports
|
|
17
|
-
technics
|
|
18
|
-
transport].freeze
|
|
19
|
-
|
|
20
|
-
##
|
|
21
|
-
# Produces a random image URL from lorempixel.com.
|
|
22
|
-
#
|
|
23
|
-
# @param size [String] Specifies the size of image to generate.
|
|
24
|
-
# @param is_gray [Boolean] Determines if the image is gray.
|
|
25
|
-
# @param category [Symbol] Adds the category of the generated image to the URL.
|
|
26
|
-
# @param number [Integer] Adds a number as part of the URL.
|
|
27
|
-
# @param text [Integer] Adds dummy text as part of the URL.
|
|
28
|
-
# @param secure [Boolean] Changes the image URL between http and https.
|
|
29
|
-
# @return [String]
|
|
30
|
-
#
|
|
31
|
-
# @example
|
|
32
|
-
# Faker::LoremPixel.image #=> "https://lorempixel.com/300/300"
|
|
33
|
-
# Faker::LoremPixel.image(size: "50x60") #=> "https://lorempixel.com/50/60"
|
|
34
|
-
# Faker::LoremPixel.image(size: "50x60", is_gray: true) #=> "https://lorempixel.com/g/50/60"
|
|
35
|
-
# Faker::LoremPixel.image(size: "50x60", is_gray: false, category: 'sports') #=> "https://lorempixel.com/50/60/sports"
|
|
36
|
-
# Faker::LoremPixel.image(size: "50x60", is_gray: false, category: 'sports', number: 3) #=> "https://lorempixel.com/50/60/sports/3"
|
|
37
|
-
# Faker::LoremPixel.image(size: "50x60", is_gray: false, category: 'sports', number: 3, text: 'Dummy-text') #=> "https://lorempixel.com/50/60/sports/3/Dummy-text"
|
|
38
|
-
# Faker::LoremPixel.image(size: "50x60", is_gray: false, category: 'sports', number: nil, text: 'Dummy-text') #=> "https://lorempixel.com/50/60/sports/Dummy-text"
|
|
39
|
-
# Faker::LoremPixel.image(secure: false) #=> "http://lorempixel.com/300/300"
|
|
40
|
-
#
|
|
41
|
-
# @faker.version 1.7.0
|
|
42
|
-
# rubocop:disable Metrics/ParameterLists
|
|
43
|
-
def image(legacy_size = NOT_GIVEN, legacy_is_gray = NOT_GIVEN, legacy_category = NOT_GIVEN, legacy_number = NOT_GIVEN, legacy_text = NOT_GIVEN, legacy_secure = NOT_GIVEN, size: '300x300', is_gray: false, category: nil, number: nil, text: nil, secure: true)
|
|
44
|
-
warn_for_deprecated_arguments do |keywords|
|
|
45
|
-
keywords << :size if legacy_size != NOT_GIVEN
|
|
46
|
-
keywords << :is_gray if legacy_is_gray != NOT_GIVEN
|
|
47
|
-
keywords << :category if legacy_category != NOT_GIVEN
|
|
48
|
-
keywords << :number if legacy_number != NOT_GIVEN
|
|
49
|
-
keywords << :text if legacy_text != NOT_GIVEN
|
|
50
|
-
keywords << :secure if legacy_secure != NOT_GIVEN
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
raise ArgumentError, 'Size should be specified in format 300x300' unless size =~ /^[0-9]+x[0-9]+$/
|
|
54
|
-
raise ArgumentError, "Supported categories are #{SUPPORTED_CATEGORIES.join(', ')}" unless category.nil? || SUPPORTED_CATEGORIES.include?(category)
|
|
55
|
-
raise ArgumentError, 'Category required when number is passed' if !number.nil? && category.nil?
|
|
56
|
-
raise ArgumentError, 'Number must be between 1 and 10' unless number.nil? || (1..10).cover?(number)
|
|
57
|
-
raise ArgumentError, 'Category and number must be passed when text is passed' if !text.nil? && number.nil? && category.nil?
|
|
58
|
-
|
|
59
|
-
url_parts = secure ? ['https:/'] : ['http:/']
|
|
60
|
-
url_parts << ['lorempixel.com']
|
|
61
|
-
url_parts << 'g' if is_gray
|
|
62
|
-
url_parts += size.split('x')
|
|
63
|
-
url_parts += [category, number, text].compact
|
|
64
|
-
url_parts.join('/')
|
|
65
|
-
end
|
|
66
|
-
# rubocop:enable Metrics/ParameterLists
|
|
67
|
-
end
|
|
68
|
-
end
|
|
69
|
-
end
|