faker 2.2.0 → 3.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1298 -24
- data/History.md +5 -5
- data/README.md +239 -104
- data/lib/faker/blockchain/aeternity.rb +70 -0
- data/lib/faker/blockchain/bitcoin.rb +28 -2
- data/lib/faker/blockchain/ethereum.rb +11 -1
- data/lib/faker/blockchain/tezos.rb +93 -9
- data/lib/faker/books/book.rb +36 -0
- data/lib/faker/books/culture_series.rb +49 -0
- data/lib/faker/books/dune.rb +73 -17
- data/lib/faker/books/lovecraft.rb +186 -57
- data/lib/faker/books/the_kingkiller_chronicle.rb +61 -0
- data/lib/faker/creature/animal.rb +9 -0
- data/lib/faker/creature/bird.rb +203 -0
- data/lib/faker/creature/cat.rb +27 -0
- data/lib/faker/creature/dog.rb +72 -0
- data/lib/faker/creature/horse.rb +18 -0
- data/lib/faker/default/address.rb +253 -33
- data/lib/faker/default/adjective.rb +35 -0
- data/lib/faker/default/alphanumeric.rb +27 -22
- data/lib/faker/default/ancient.rb +36 -0
- data/lib/faker/default/app.rb +46 -16
- data/lib/faker/default/appliance.rb +18 -0
- data/lib/faker/default/artist.rb +9 -0
- data/lib/faker/default/avatar.rb +32 -24
- data/lib/faker/default/bank.rb +118 -29
- data/lib/faker/default/barcode.rb +165 -0
- data/lib/faker/default/beer.rb +75 -3
- data/lib/faker/default/blood.rb +48 -0
- data/lib/faker/default/boolean.rb +13 -6
- data/lib/faker/default/bossa_nova.rb +18 -0
- data/lib/faker/default/business.rb +27 -0
- data/lib/faker/default/camera.rb +46 -0
- data/lib/faker/default/cannabis.rb +90 -0
- data/lib/faker/default/chile_rut.rb +62 -26
- data/lib/faker/default/chuck_norris.rb +13 -2
- data/lib/faker/default/code.rb +162 -58
- data/lib/faker/default/coffee.rb +45 -0
- data/lib/faker/default/coin.rb +18 -0
- data/lib/faker/default/color.rb +123 -5
- data/lib/faker/default/commerce.rb +105 -37
- data/lib/faker/default/company.rb +446 -34
- data/lib/faker/default/compass.rb +135 -0
- data/lib/faker/default/computer.rb +63 -0
- data/lib/faker/default/construction.rb +54 -0
- data/lib/faker/default/cosmere.rb +90 -0
- data/lib/faker/default/crypto.rb +44 -4
- data/lib/faker/default/crypto_coin.rb +48 -18
- data/lib/faker/default/currency.rb +27 -0
- data/lib/faker/default/date.rb +149 -52
- data/lib/faker/default/dc_comics.rb +45 -0
- data/lib/faker/default/demographic.rb +58 -6
- data/lib/faker/default/dessert.rb +27 -0
- data/lib/faker/default/device.rb +54 -0
- data/lib/faker/default/driving_licence.rb +85 -28
- data/lib/faker/default/drone.rb +332 -0
- data/lib/faker/default/educator.rb +73 -6
- data/lib/faker/default/electrical_components.rb +27 -0
- data/lib/faker/default/emotion.rb +33 -0
- data/lib/faker/default/esport.rb +45 -0
- data/lib/faker/default/file.rb +53 -38
- data/lib/faker/default/finance.rb +75 -8
- data/lib/faker/default/food.rb +93 -3
- data/lib/faker/default/funny_name.rb +45 -0
- data/lib/faker/default/gender.rb +31 -0
- data/lib/faker/default/greek_philosophers.rb +18 -0
- data/lib/faker/default/hacker.rb +59 -1
- data/lib/faker/default/hipster.rb +106 -81
- data/lib/faker/default/hobby.rb +22 -0
- data/lib/faker/default/house.rb +18 -0
- data/lib/faker/default/html.rb +230 -0
- data/lib/faker/default/id_number.rb +276 -18
- data/lib/faker/default/industry_segments.rb +36 -0
- data/lib/faker/default/internet.rb +442 -147
- data/lib/faker/default/internet_http.rb +48 -0
- data/lib/faker/default/invoice.rb +37 -29
- data/lib/faker/default/job.rb +36 -0
- data/lib/faker/default/json.rb +61 -30
- data/lib/faker/default/kpop.rb +54 -0
- data/lib/faker/default/lorem.rb +184 -121
- data/lib/faker/default/lorem_flickr.rb +69 -68
- data/lib/faker/default/markdown.rb +97 -15
- data/lib/faker/default/marketing.rb +9 -0
- data/lib/faker/default/measurement.rb +101 -50
- data/lib/faker/default/military.rb +71 -0
- data/lib/faker/default/mountain.rb +33 -0
- data/lib/faker/default/name.rb +99 -6
- data/lib/faker/default/nation.rb +45 -5
- data/lib/faker/default/nato_phonetic_alphabet.rb +9 -0
- data/lib/faker/default/nhs.rb +21 -7
- data/lib/faker/default/number.rb +160 -91
- data/lib/faker/default/omniauth.rb +199 -137
- data/lib/faker/default/phone_number.rb +89 -11
- data/lib/faker/default/placeholdit.rb +23 -25
- data/lib/faker/default/programming_language.rb +18 -0
- data/lib/faker/default/relationship.rb +47 -7
- data/lib/faker/default/religion.rb +6 -0
- data/lib/faker/default/restaurant.rb +54 -2
- data/lib/faker/default/science.rb +135 -0
- data/lib/faker/default/slack_emoji.rb +81 -0
- data/lib/faker/default/source.rb +46 -22
- data/lib/faker/default/south_africa.rb +90 -0
- data/lib/faker/default/space.rb +128 -1
- data/lib/faker/default/string.rb +18 -9
- data/lib/faker/default/stripe.rb +68 -27
- data/lib/faker/default/subscription.rb +45 -0
- data/lib/faker/default/superhero.rb +45 -0
- data/lib/faker/default/tea.rb +41 -0
- data/lib/faker/default/team.rb +45 -0
- data/lib/faker/default/time.rb +84 -68
- data/lib/faker/default/twitter.rb +57 -47
- data/lib/faker/default/types.rb +90 -41
- data/lib/faker/default/university.rb +45 -0
- data/lib/faker/default/vehicle.rb +223 -60
- data/lib/faker/default/verb.rb +45 -0
- data/lib/faker/default/vulnerability_identifier.rb +23 -0
- data/lib/faker/default/world_cup.rb +52 -16
- data/lib/faker/fantasy/tolkien.rb +67 -0
- data/lib/faker/games/clash_of_clans.rb +48 -0
- data/lib/faker/games/control.rb +113 -0
- data/lib/faker/games/dnd.rb +178 -0
- data/lib/faker/games/dota.rb +61 -6
- data/lib/faker/games/elder_scrolls.rb +98 -0
- data/lib/faker/games/fallout.rb +37 -0
- data/lib/faker/games/final_fantasy_xiv.rb +73 -0
- data/lib/faker/games/game.rb +27 -0
- data/lib/faker/games/half_life.rb +27 -0
- data/lib/faker/games/heroes.rb +40 -0
- data/lib/faker/games/heroes_of_the_storm.rb +48 -1
- data/lib/faker/games/league_of_legends.rb +54 -0
- data/lib/faker/games/minecraft.rb +113 -0
- data/lib/faker/games/myst.rb +45 -0
- data/lib/faker/games/overwatch.rb +27 -0
- data/lib/faker/games/pokemon.rb +27 -0
- data/lib/faker/games/sonic_the_hedgehog.rb +27 -0
- data/lib/faker/games/street_fighter.rb +61 -0
- data/lib/faker/games/super_mario.rb +48 -0
- data/lib/faker/games/super_smash_bros.rb +18 -0
- data/lib/faker/games/tarkov.rb +205 -0
- data/lib/faker/games/touhou.rb +75 -0
- data/lib/faker/games/warhammer_fantasy.rb +74 -0
- data/lib/faker/games/witcher.rb +93 -0
- data/lib/faker/games/world_of_warcraft.rb +44 -1
- data/lib/faker/games/zelda.rb +37 -1
- data/lib/faker/japanese_media/conan.rb +48 -0
- data/lib/faker/japanese_media/cowboy_bebop.rb +61 -0
- data/lib/faker/japanese_media/doraemon.rb +48 -0
- data/lib/faker/japanese_media/dragon_ball.rb +35 -0
- data/lib/faker/japanese_media/fullmetal_alchemist_brotherhood.rb +48 -0
- data/lib/faker/japanese_media/kamen_rider.rb +102 -0
- data/lib/faker/japanese_media/naruto.rb +61 -0
- data/lib/faker/japanese_media/one_piece.rb +55 -1
- data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
- data/lib/faker/japanese_media/sword_art_online.rb +36 -0
- data/lib/faker/locations/australia.rb +47 -0
- data/lib/faker/movies/avatar.rb +49 -0
- data/lib/faker/movies/back_to_the_future.rb +28 -0
- data/lib/faker/movies/departed.rb +49 -0
- data/lib/faker/movies/ghostbusters.rb +28 -0
- data/lib/faker/movies/hackers.rb +48 -0
- data/lib/faker/movies/harry_potter.rb +54 -0
- data/lib/faker/movies/hitchhikers_guide_to_the_galaxy.rb +69 -0
- data/lib/faker/movies/hobbit.rb +41 -4
- data/lib/faker/movies/how_to_train_your_dragon.rb +48 -0
- data/lib/faker/movies/lebowski.rb +27 -0
- data/lib/faker/movies/lord_of_the_rings.rb +31 -3
- data/lib/faker/movies/movie.rb +22 -0
- data/lib/faker/movies/princess_bride.rb +19 -0
- data/lib/faker/movies/room.rb +63 -0
- data/lib/faker/movies/star_wars.rb +170 -11
- data/lib/faker/movies/tron.rb +161 -0
- data/lib/faker/movies/v_for_vendetta.rb +29 -0
- data/lib/faker/music/grateful_dead.rb +18 -0
- data/lib/faker/music/hiphop.rb +48 -0
- data/lib/faker/music/music.rb +102 -4
- data/lib/faker/music/opera.rb +273 -1
- data/lib/faker/music/pearl_jam.rb +50 -0
- data/lib/faker/music/phish.rb +36 -1
- data/lib/faker/music/prince.rb +64 -0
- data/lib/faker/music/rock_band.rb +21 -0
- data/lib/faker/music/rush.rb +37 -0
- data/lib/faker/music/show.rb +49 -0
- data/lib/faker/music/smashing_pumpkins.rb +64 -0
- data/lib/faker/music/umphreys_mcgee.rb +9 -0
- data/lib/faker/quotes/chiquito.rb +80 -0
- data/lib/faker/quotes/quote.rb +93 -1
- data/lib/faker/quotes/rajnikanth.rb +27 -0
- data/lib/faker/quotes/shakespeare.rb +70 -0
- data/lib/faker/religion/bible.rb +50 -0
- data/lib/faker/sports/basketball.rb +36 -0
- data/lib/faker/sports/chess.rb +90 -0
- data/lib/faker/sports/football.rb +45 -0
- data/lib/faker/sports/mountaineering.rb +22 -0
- data/lib/faker/sports/sport.rb +116 -0
- data/lib/faker/sports/volleyball.rb +74 -0
- data/lib/faker/travel/airport.rb +43 -0
- data/lib/faker/travel/train_station.rb +54 -0
- data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +22 -0
- data/lib/faker/tv_shows/archer.rb +51 -0
- data/lib/faker/tv_shows/big_bang_theory.rb +37 -0
- data/lib/faker/tv_shows/bojack_horseman.rb +28 -0
- data/lib/faker/tv_shows/breaking_bad.rb +18 -0
- data/lib/faker/tv_shows/brooklyn_nine_nine.rb +38 -0
- data/lib/faker/tv_shows/buffy.rb +60 -2
- data/lib/faker/tv_shows/community.rb +19 -0
- data/lib/faker/tv_shows/dr_who.rb +78 -2
- data/lib/faker/tv_shows/dumb_and_dumber.rb +28 -0
- data/lib/faker/tv_shows/family_guy.rb +28 -0
- data/lib/faker/tv_shows/final_space.rb +51 -0
- data/lib/faker/tv_shows/friends.rb +27 -0
- data/lib/faker/tv_shows/futurama.rb +65 -0
- data/lib/faker/tv_shows/game_of_thrones.rb +46 -0
- data/lib/faker/tv_shows/hey_arnold.rb +27 -0
- data/lib/faker/tv_shows/how_i_met_your_mother.rb +37 -0
- data/lib/faker/tv_shows/michael_scott.rb +10 -0
- data/lib/faker/tv_shows/new_girl.rb +19 -0
- data/lib/faker/tv_shows/parks_and_rec.rb +18 -0
- data/lib/faker/tv_shows/rick_and_morty.rb +28 -0
- data/lib/faker/tv_shows/ru_paul.rb +18 -0
- data/lib/faker/tv_shows/seinfeld.rb +28 -0
- data/lib/faker/tv_shows/silicon_valley.rb +75 -0
- data/lib/faker/tv_shows/simpsons.rb +42 -0
- data/lib/faker/tv_shows/south_park.rb +34 -0
- data/lib/faker/tv_shows/spongebob.rb +50 -0
- data/lib/faker/tv_shows/star_trek.rb +36 -0
- data/lib/faker/tv_shows/stargate.rb +28 -0
- data/lib/faker/tv_shows/stranger_things.rb +19 -0
- data/lib/faker/tv_shows/suits.rb +37 -0
- data/lib/faker/tv_shows/supernatural.rb +48 -0
- data/lib/faker/tv_shows/the_expanse.rb +36 -0
- data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +43 -2
- data/lib/faker/tv_shows/the_it_crowd.rb +37 -0
- data/lib/faker/tv_shows/the_office.rb +37 -0
- data/lib/faker/tv_shows/the_thick_of_it.rb +28 -0
- data/lib/faker/tv_shows/twin_peaks.rb +28 -0
- data/lib/faker/tv_shows/venture_bros.rb +38 -0
- data/lib/faker/version.rb +2 -2
- data/lib/faker.rb +58 -58
- data/lib/helpers/base58.rb +1 -1
- data/lib/helpers/char.rb +22 -27
- data/lib/helpers/positional_generator.rb +480 -0
- data/lib/helpers/unique_generator.rb +17 -13
- data/lib/locales/README.md +18 -2
- data/lib/locales/ar.yml +6 -1
- data/lib/locales/bg.yml +3 -3
- data/lib/locales/ca.yml +0 -8
- data/lib/locales/da-DK.yml +6 -4
- data/lib/locales/de-AT.yml +7 -6
- data/lib/locales/de-CH.yml +6028 -9
- data/lib/locales/de.yml +12 -6
- data/lib/locales/en/address.yml +8 -3
- data/lib/locales/en/adjective.yml +179 -0
- data/lib/locales/en/airport.yml +381 -0
- data/lib/locales/en/animal.yml +1 -1
- data/lib/locales/en/aqua_teen_hunger_force.yml +33 -1
- data/lib/locales/en/archer.yml +75 -0
- data/lib/locales/en/australia.yml +107 -0
- data/lib/locales/en/avatar.yml +31 -0
- data/lib/locales/en/bank.yml +1 -1
- data/lib/locales/en/barcode.yml +24 -0
- data/lib/locales/en/bible.yml +90 -0
- data/lib/locales/en/big_bang_theory.yml +38 -0
- data/lib/locales/en/bird.yml +1281 -0
- data/lib/locales/en/blood.yml +13 -0
- data/lib/locales/en/book.yml +487 -3
- data/lib/locales/en/brooklyn_nine_nine.yml +35 -0
- data/lib/locales/en/buffy.yml +1 -1
- data/lib/locales/en/camera.yml +611 -0
- data/lib/locales/en/cat.yml +1 -1
- data/lib/locales/en/chess.yml +103 -0
- data/lib/locales/en/chiquito.yml +64 -0
- data/lib/locales/en/clash_of_clan.yml +101 -0
- data/lib/locales/en/coffee.yml +1 -1
- data/lib/locales/en/color.yml +1 -1
- data/lib/locales/en/commerce.yml +17 -0
- data/lib/locales/en/community.yml +17 -17
- data/lib/locales/en/company.yml +3 -2
- data/lib/locales/en/computer.yml +55 -0
- data/lib/locales/en/conan.yml +171 -0
- data/lib/locales/en/control.yml +247 -0
- data/lib/locales/en/cowboy_bebop.yml +163 -0
- data/lib/locales/en/demographic.yml +218 -5
- data/lib/locales/en/departed.yml +50 -0
- data/lib/locales/en/device.yml +112 -4
- data/lib/locales/en/dnd.yml +636 -0
- data/lib/locales/en/doraemon.yml +286 -0
- data/lib/locales/en/dota.yml +651 -63
- data/lib/locales/en/dr_who.yml +1 -1
- data/lib/locales/en/dragon_ball.yml +243 -1
- data/lib/locales/en/driving_license.yml +181 -0
- data/lib/locales/en/drone.yml +95 -0
- data/lib/locales/en/dune.yml +270 -131
- data/lib/locales/en/educator.yml +75 -6
- data/lib/locales/en/elder_scrolls.yml +583 -9
- data/lib/locales/en/emotion.yml +480 -0
- data/lib/locales/en/fallout.yml +311 -133
- data/lib/locales/en/file.yml +9 -1
- data/lib/locales/en/final_fantasy_xiv.yml +754 -0
- data/lib/locales/en/final_space.yml +37 -0
- data/lib/locales/en/finance.yml +77 -1
- data/lib/locales/en/fma_brotherhood.yml +78 -0
- data/lib/locales/en/food.yml +1066 -10
- data/lib/locales/en/football.yml +3 -3
- data/lib/locales/en/fresh_prince_of_bel_air.yml +1 -1
- data/lib/locales/en/futurama.yml +344 -0
- data/lib/locales/en/game.yml +11 -0
- data/lib/locales/en/gender.yml +1 -0
- data/lib/locales/en/hackers.yml +53 -0
- data/lib/locales/en/half_life.yml +84 -3
- data/lib/locales/en/heroes.yml +408 -3
- data/lib/locales/en/heroes_of_the_storm.yml +131 -4
- data/lib/locales/en/hobby.yml +171 -0
- data/lib/locales/en/horse.yml +2 -2
- data/lib/locales/en/house.yml +1 -1
- data/lib/locales/en/how_to_train_your_dragon.yml +174 -0
- data/lib/locales/en/internet.yml +140 -3
- data/lib/locales/en/jack_handey.yml +54 -0
- data/lib/locales/en/kamen_rider.yml +452 -0
- data/lib/locales/en/kpop.yml +7 -7
- data/lib/locales/en/league_of_legends.yml +285 -6
- data/lib/locales/en/lebowski.yml +1 -1
- data/lib/locales/en/lovecraft.yml +76 -6
- data/lib/locales/en/military.yml +179 -5
- data/lib/locales/en/minecraft.yml +663 -0
- data/lib/locales/en/mitch_hedberg.yml +46 -0
- data/lib/locales/en/mountain.yml +171 -0
- data/lib/locales/en/mountaineering.yml +14 -0
- data/lib/locales/en/movie.yml +194 -2
- data/lib/locales/en/music.yml +461 -29
- data/lib/locales/en/myst.yml +87 -31
- data/lib/locales/en/name.yml +6 -5
- data/lib/locales/en/naruto.yml +230 -0
- data/lib/locales/en/one_piece.yml +2 -2
- data/lib/locales/en/opera.yml +169 -1
- data/lib/locales/en/overwatch.yml +2648 -37
- data/lib/locales/en/pearl_jam.yml +213 -0
- data/lib/locales/en/phish.yml +392 -1
- data/lib/locales/en/phone_number.yml +1 -1
- data/lib/locales/en/pokemon.yml +417 -4
- data/lib/locales/en/prince.yml +227 -0
- data/lib/locales/en/quote.yml +692 -163
- data/lib/locales/en/rajnikanth.yml +77 -0
- data/lib/locales/en/rock_band.yml +1 -0
- data/lib/locales/en/room.yml +68 -0
- data/lib/locales/en/rush.yml +32 -0
- data/lib/locales/en/science.yml +481 -3
- data/lib/locales/en/shakespeare.yml +23 -26
- data/lib/locales/en/show.yml +597 -0
- data/lib/locales/en/simpsons.yml +668 -0
- data/lib/locales/en/smashing_pumpkins.yml +382 -0
- data/lib/locales/en/source.yml +35 -0
- data/lib/locales/en/south_park.yml +360 -2
- data/lib/locales/en/space.yml +1 -1
- data/lib/locales/en/spongebob.yml +489 -0
- data/lib/locales/en/sport.yml +130 -0
- data/lib/locales/en/star_trek.yml +1 -1
- data/lib/locales/en/star_wars.yml +568 -220
- data/lib/locales/en/stranger_thing.yml +1 -1
- data/lib/locales/en/street_fighter.yml +1524 -0
- data/lib/locales/en/stripe.yml +3 -3
- data/lib/locales/en/studio_ghibli.yml +107 -0
- data/lib/locales/en/suits.yml +45 -0
- data/lib/locales/en/super_mario.yml +58 -0
- data/lib/locales/en/super_smash_bros.yml +23 -5
- data/lib/locales/en/supernatural.yml +141 -0
- data/lib/locales/en/tarkov.yml +593 -0
- data/lib/locales/en/tea.yml +172 -0
- data/lib/locales/en/the_kingkiller_chronicle.yml +56 -0
- data/lib/locales/en/the_office.yml +86 -0
- data/lib/locales/en/tolkien.yml +2453 -0
- data/lib/locales/en/touhou.yml +839 -0
- data/lib/locales/en/train_station.yml +280 -0
- data/lib/locales/en/tron.yml +227 -0
- data/lib/locales/en/vehicle.yml +2809 -75
- data/lib/locales/en/volleyball.yml +501 -0
- data/lib/locales/en/warhammer_fantasy.yml +582 -0
- data/lib/locales/en/witcher.yml +426 -7
- data/lib/locales/en/world_of_warcraft.yml +122 -4
- data/lib/locales/en/zelda.yml +962 -4
- data/lib/locales/en-AU.yml +50 -10
- data/lib/locales/en-CA.yml +5 -1
- data/lib/locales/en-GB.yml +3 -2
- data/lib/locales/en-IND.yml +2 -1
- data/lib/locales/en-MS.yml +3 -1
- data/lib/locales/en-NEP.yml +5 -2
- data/lib/locales/en-NG.yml +1 -0
- data/lib/locales/en-NZ.yml +135 -8
- data/lib/locales/en-PAK.yml +3 -1
- data/lib/locales/en-SG.yml +3 -1
- data/lib/locales/en-TH.yml +360 -0
- data/lib/locales/en-UG.yml +1 -0
- data/lib/locales/en-US.yml +38 -12
- data/lib/locales/en-ZA.yml +2 -2
- data/lib/locales/en-au-ocker.yml +4 -1
- data/lib/locales/en.yml +0 -3
- data/lib/locales/es-AR.yml +4601 -0
- data/lib/locales/es-MX.yml +4 -1
- data/lib/locales/es.yml +58 -2
- data/lib/locales/fa.yml +2 -0
- data/lib/locales/fi-FI.yml +4 -2
- data/lib/locales/fr/address.yml +20 -0
- data/lib/locales/fr/adjective.yml +266 -0
- data/lib/locales/fr/ancient.yml +141 -0
- data/lib/locales/fr/animal.yml +5 -0
- data/lib/locales/fr/appliance.yml +4 -0
- data/lib/locales/fr/book.yml +7 -0
- data/lib/locales/fr/color.yml +4 -0
- data/lib/locales/fr/company.yml +17 -0
- data/lib/locales/fr/compass.yml +23 -0
- data/lib/locales/fr/demographic.yml +4 -0
- data/lib/locales/fr/gender.yml +6 -0
- data/lib/locales/fr/internet.yml +5 -0
- data/lib/locales/fr/lorem.yml +5 -0
- data/lib/locales/fr/measurement.yml +7 -0
- data/lib/locales/fr/name.yml +22 -0
- data/lib/locales/fr/phone_number.yml +7 -0
- data/lib/locales/fr/pokemon.yml +7 -0
- data/lib/locales/fr-CA.yml +28 -11
- data/lib/locales/fr-CH.yml +3 -3
- data/lib/locales/fr.yml +1 -112
- data/lib/locales/hy.yml +3 -7
- data/lib/locales/id.yml +5 -2
- data/lib/locales/it.yml +3 -1
- data/lib/locales/ja/README.md +13 -0
- data/lib/locales/ja/address.yml +120539 -0
- data/lib/locales/ja/adjective.yml +148 -0
- data/lib/locales/ja/ancient.yml +4 -0
- data/lib/locales/ja/animal.yml +5 -0
- data/lib/locales/ja/bank.yml +4 -0
- data/lib/locales/ja/book.yml +7 -0
- data/lib/locales/ja/cat.yml +5 -0
- data/lib/locales/ja/coffee.yml +4 -0
- data/lib/locales/ja/color.yml +4 -0
- data/lib/locales/ja/commerce.yml +11 -0
- data/lib/locales/ja/company.yml +8 -0
- data/lib/locales/ja/dog.yml +6 -0
- data/lib/locales/ja/emotion.yml +51 -0
- data/lib/locales/ja/food.yml +4 -0
- data/lib/locales/ja/gender.yml +4 -0
- data/lib/locales/ja/lorem.yml +9 -0
- data/lib/locales/ja/name.yml +13 -0
- data/lib/locales/ja/naruto.yml +230 -0
- data/lib/locales/ja/overwatch.yml +5 -0
- data/lib/locales/ja/phone_number.yml +7 -0
- data/lib/locales/ja/pokemon.yml +7 -0
- data/lib/locales/ja/relationship.yml +10 -0
- data/lib/locales/ja/restaurant.yml +11 -0
- data/lib/locales/ja/space.yml +5 -0
- data/lib/locales/ja/sport.yml +130 -0
- data/lib/locales/ja/studio_ghibli.yml +112 -0
- data/lib/locales/ja/subscription.yml +8 -0
- data/lib/locales/ja/super_mario.yml +9 -0
- data/lib/locales/ja/super_smash_bros.yml +8 -0
- data/lib/locales/ja/touhou.yml +466 -0
- data/lib/locales/ja/university.yml +9 -0
- data/lib/locales/ja/zelda.yml +5 -0
- data/lib/locales/ko.yml +95 -2
- data/lib/locales/lt.yml +34 -0
- data/lib/locales/lv.yml +1 -1
- data/lib/locales/mi-NZ.yml +283 -0
- data/lib/locales/nb-NO.yml +5 -2
- data/lib/locales/nl.yml +1 -0
- data/lib/locales/pl.yml +2 -2
- data/lib/locales/pt-BR.yml +33 -4
- data/lib/locales/pt.yml +6 -4
- data/lib/locales/ru.yml +43 -1
- data/lib/locales/sk.yml +5 -2
- data/lib/locales/sv.yml +1 -0
- data/lib/locales/th.yml +380 -0
- data/lib/locales/tr.yml +1 -0
- data/lib/locales/uk.yml +10 -5
- data/lib/locales/vi.yml +1 -0
- data/lib/locales/zh-CN/bank.yml +17 -0
- data/lib/locales/zh-CN.yml +2 -1
- data/lib/locales/zh-TW.yml +2 -1
- metadata +201 -109
- data/lib/faker/default/fillmurray.rb +0 -30
- data/lib/faker/default/lorem_pixel.rb +0 -63
- data/lib/locales/en/hobbit.yml +0 -19
- data/lib/locales/en/lord_of_the_rings.yml +0 -6
- data/lib/locales/ja.yml +0 -98
|
@@ -9,28 +9,25 @@ module Faker
|
|
|
9
9
|
:email
|
|
10
10
|
|
|
11
11
|
def initialize(name: nil, email: nil)
|
|
12
|
+
super()
|
|
13
|
+
|
|
12
14
|
@name = name || "#{Name.first_name} #{Name.last_name}"
|
|
13
|
-
@email = email || Internet.
|
|
15
|
+
@email = email || Internet.email(name: self.name)
|
|
14
16
|
@first_name, @last_name = self.name.split
|
|
15
17
|
end
|
|
16
18
|
|
|
17
19
|
class << self
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
if legacy_uid != NOT_GIVEN
|
|
30
|
-
warn_with_uplevel 'Passing `uid` with the 3rd argument of `Omniauth.google` is deprecated. Use keyword argument like `Omniauth.google(uid: ...)` instead.', uplevel: 1
|
|
31
|
-
uid = legacy_uid
|
|
32
|
-
end
|
|
33
|
-
|
|
20
|
+
##
|
|
21
|
+
# Generate a mock Omniauth response from Google.
|
|
22
|
+
#
|
|
23
|
+
# @param name [String] A specific name to return in the response.
|
|
24
|
+
# @param email [String] A specific email to return in the response.
|
|
25
|
+
# @param uid [String] A specific UID to return in the response.
|
|
26
|
+
#
|
|
27
|
+
# @return [Hash] An auth hash in the format provided by omniauth-google.
|
|
28
|
+
#
|
|
29
|
+
# @faker.version 1.8.0
|
|
30
|
+
def google(name: nil, email: nil, uid: Number.number(digits: 9).to_s)
|
|
34
31
|
auth = Omniauth.new(name: name, email: email)
|
|
35
32
|
{
|
|
36
33
|
provider: 'google_oauth2',
|
|
@@ -42,7 +39,7 @@ module Faker
|
|
|
42
39
|
email: auth.email,
|
|
43
40
|
image: image
|
|
44
41
|
},
|
|
45
|
-
credentials:
|
|
42
|
+
credentials: {
|
|
46
43
|
token: Crypto.md5,
|
|
47
44
|
refresh_token: Crypto.md5,
|
|
48
45
|
expires_at: Time.forward.to_i,
|
|
@@ -50,7 +47,7 @@ module Faker
|
|
|
50
47
|
},
|
|
51
48
|
extra: {
|
|
52
49
|
raw_info: {
|
|
53
|
-
sub:
|
|
50
|
+
sub: uid,
|
|
54
51
|
email: auth.email,
|
|
55
52
|
email_verified: random_boolean.to_s,
|
|
56
53
|
name: auth.name,
|
|
@@ -60,45 +57,37 @@ module Faker
|
|
|
60
57
|
picture: image,
|
|
61
58
|
gender: gender,
|
|
62
59
|
birthday: Date.backward(days: 36_400).strftime('%Y-%m-%d'),
|
|
63
|
-
|
|
60
|
+
locale: 'en',
|
|
64
61
|
hd: "#{Company.name.downcase}.com"
|
|
65
62
|
},
|
|
66
63
|
id_info: {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
64
|
+
iss: 'accounts.google.com',
|
|
65
|
+
at_hash: Crypto.md5,
|
|
66
|
+
email_verified: true,
|
|
67
|
+
sub: Number.number(digits: 28).to_s,
|
|
68
|
+
azp: 'APP_ID',
|
|
69
|
+
email: auth.email,
|
|
70
|
+
aud: 'APP_ID',
|
|
71
|
+
iat: Time.forward.to_i,
|
|
72
|
+
exp: Time.forward.to_i,
|
|
73
|
+
openid_id: "https://www.google.com/accounts/o8/id?id=#{uid}"
|
|
77
74
|
}
|
|
78
75
|
}
|
|
79
76
|
}
|
|
80
77
|
end
|
|
81
78
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
warn_with_uplevel 'Passing `username` with the 3rd argument of `Omniauth.facebook` is deprecated. Use keyword argument like `Omniauth.facebook(username: ...)` instead.', uplevel: 1
|
|
95
|
-
username = legacy_username
|
|
96
|
-
end
|
|
97
|
-
if legacy_uid != NOT_GIVEN
|
|
98
|
-
warn_with_uplevel 'Passing `uid` with the 4th argument of `Omniauth.facebook` is deprecated. Use keyword argument like `Omniauth.facebook(uid: ...)` instead.', uplevel: 1
|
|
99
|
-
uid = legacy_uid
|
|
100
|
-
end
|
|
101
|
-
|
|
79
|
+
##
|
|
80
|
+
# Generate a mock Omniauth response from Facebook.
|
|
81
|
+
#
|
|
82
|
+
# @param name [String] A specific name to return in the response.
|
|
83
|
+
# @param email [String] A specific email to return in the response.
|
|
84
|
+
# @param username [String] A specific username to return in the response.
|
|
85
|
+
# @param uid [String] A specific UID to return in the response.
|
|
86
|
+
#
|
|
87
|
+
# @return [Hash] An auth hash in the format provided by omniauth-facebook.
|
|
88
|
+
#
|
|
89
|
+
# @faker.version 1.8.0
|
|
90
|
+
def facebook(name: nil, email: nil, username: nil, uid: Number.number(digits: 7).to_s)
|
|
102
91
|
auth = Omniauth.new(name: name, email: email)
|
|
103
92
|
username ||= "#{auth.first_name.downcase[0]}#{auth.last_name.downcase}"
|
|
104
93
|
{
|
|
@@ -140,22 +129,17 @@ module Faker
|
|
|
140
129
|
}
|
|
141
130
|
end
|
|
142
131
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
if legacy_uid != NOT_GIVEN
|
|
155
|
-
warn_with_uplevel 'Passing `uid` with the 3rd argument of `Omniauth.twitter` is deprecated. Use keyword argument like `Omniauth.twitter(uid: ...)` instead.', uplevel: 1
|
|
156
|
-
uid = legacy_uid
|
|
157
|
-
end
|
|
158
|
-
|
|
132
|
+
##
|
|
133
|
+
# Generate a mock Omniauth response from Twitter.
|
|
134
|
+
#
|
|
135
|
+
# @param name [String] A specific name to return in the response.
|
|
136
|
+
# @param nickname [String] A specific nickname to return in the response.
|
|
137
|
+
# @param uid [String] A specific UID to return in the response.
|
|
138
|
+
#
|
|
139
|
+
# @return [Hash] An auth hash in the format provided by omniauth-twitter.
|
|
140
|
+
#
|
|
141
|
+
# @faker.version 1.8.0
|
|
142
|
+
def twitter(name: nil, nickname: nil, uid: Number.number(digits: 6).to_s)
|
|
159
143
|
auth = Omniauth.new(name: name)
|
|
160
144
|
nickname ||= auth.name.downcase.delete(' ')
|
|
161
145
|
location = city_state
|
|
@@ -228,22 +212,17 @@ module Faker
|
|
|
228
212
|
}
|
|
229
213
|
end
|
|
230
214
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
if legacy_uid != NOT_GIVEN
|
|
243
|
-
warn_with_uplevel 'Passing `uid` with the 3rd argument of `Omniauth.linkedin` is deprecated. Use keyword argument like `Omniauth.linkedin(uid: ...)` instead.', uplevel: 1
|
|
244
|
-
uid = legacy_uid
|
|
245
|
-
end
|
|
246
|
-
|
|
215
|
+
##
|
|
216
|
+
# Generate a mock Omniauth response from LinkedIn.
|
|
217
|
+
#
|
|
218
|
+
# @param name [String] A specific name to return in the response.
|
|
219
|
+
# @param email [String] A specific email to return in the response.
|
|
220
|
+
# @param uid [String] A specific UID to return in the response.
|
|
221
|
+
#
|
|
222
|
+
# @return [Hash] An auth hash in the format provided by omniauth-linkedin.
|
|
223
|
+
#
|
|
224
|
+
# @faker.version 1.8.0
|
|
225
|
+
def linkedin(name: nil, email: nil, uid: Number.number(digits: 6).to_s)
|
|
247
226
|
auth = Omniauth.new(name: name, email: email)
|
|
248
227
|
first_name = auth.first_name.downcase
|
|
249
228
|
last_name = auth.last_name.downcase
|
|
@@ -254,74 +233,69 @@ module Faker
|
|
|
254
233
|
industry = Commerce.department
|
|
255
234
|
url = "http://www.linkedin.com/in/#{first_name}#{last_name}"
|
|
256
235
|
{
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
236
|
+
provider: 'linkedin',
|
|
237
|
+
uid: uid,
|
|
238
|
+
info: {
|
|
239
|
+
name: auth.name,
|
|
240
|
+
email: auth.email,
|
|
241
|
+
nickname: auth.name,
|
|
242
|
+
first_name: auth.first_name,
|
|
243
|
+
last_name: auth.last_name,
|
|
244
|
+
location: location,
|
|
245
|
+
description: description,
|
|
246
|
+
image: image,
|
|
247
|
+
phone: PhoneNumber.phone_number,
|
|
248
|
+
headline: description,
|
|
249
|
+
industry: industry,
|
|
250
|
+
urls: {
|
|
251
|
+
public_profile: url
|
|
273
252
|
}
|
|
274
253
|
},
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
254
|
+
credentials: {
|
|
255
|
+
token: token,
|
|
256
|
+
secret: secret
|
|
278
257
|
},
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
258
|
+
extra: {
|
|
259
|
+
access_token: {
|
|
260
|
+
token: token,
|
|
261
|
+
secret: secret,
|
|
262
|
+
consumer: nil,
|
|
263
|
+
params: {
|
|
285
264
|
oauth_token: token,
|
|
286
265
|
oauth_token_secret: secret,
|
|
287
266
|
oauth_expires_in: Time.forward.to_i,
|
|
288
267
|
oauth_authorization_expires_in: Time.forward.to_i
|
|
289
268
|
},
|
|
290
|
-
|
|
269
|
+
response: nil
|
|
291
270
|
},
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
271
|
+
raw_info: {
|
|
272
|
+
firstName: auth.first_name,
|
|
273
|
+
headline: description,
|
|
274
|
+
id: uid,
|
|
275
|
+
industry: industry,
|
|
276
|
+
lastName: auth.last_name,
|
|
277
|
+
location: {
|
|
278
|
+
country: { code: Address.country_code.downcase },
|
|
279
|
+
name: city_state.split(', ').first
|
|
301
280
|
},
|
|
302
|
-
|
|
303
|
-
|
|
281
|
+
pictureUrl: image,
|
|
282
|
+
publicProfileUrl: url
|
|
304
283
|
}
|
|
305
284
|
}
|
|
306
285
|
}
|
|
307
286
|
end
|
|
308
287
|
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
if legacy_uid != NOT_GIVEN
|
|
321
|
-
warn_with_uplevel 'Passing `uid` with the 3rd argument of `Omniauth.github` is deprecated. Use keyword argument like `Omniauth.github(uid: ...)` instead.', uplevel: 1
|
|
322
|
-
uid = legacy_uid
|
|
323
|
-
end
|
|
324
|
-
|
|
288
|
+
##
|
|
289
|
+
# Generate a mock Omniauth response from Github.
|
|
290
|
+
#
|
|
291
|
+
# @param name [String] A specific name to return in the response.
|
|
292
|
+
# @param email [String] A specific email to return in the response.
|
|
293
|
+
# @param uid [String] A specific UID to return in the response.
|
|
294
|
+
#
|
|
295
|
+
# @return [Hash] An auth hash in the format provided by omniauth-github.
|
|
296
|
+
#
|
|
297
|
+
# @faker.version 1.8.0
|
|
298
|
+
def github(name: nil, email: nil, uid: Number.number(digits: 8).to_s)
|
|
325
299
|
auth = Omniauth.new(name: name, email: email)
|
|
326
300
|
login = auth.name.downcase.tr(' ', '-')
|
|
327
301
|
html_url = "https://github.com/#{login}"
|
|
@@ -340,7 +314,7 @@ module Faker
|
|
|
340
314
|
},
|
|
341
315
|
credentials: {
|
|
342
316
|
token: Crypto.md5,
|
|
343
|
-
expires:
|
|
317
|
+
expires: false
|
|
344
318
|
},
|
|
345
319
|
extra: {
|
|
346
320
|
raw_info: {
|
|
@@ -360,7 +334,7 @@ module Faker
|
|
|
360
334
|
events_url: "#{api_url}/events{/privacy}",
|
|
361
335
|
received_events_url: "#{api_url}/received_events",
|
|
362
336
|
type: 'User',
|
|
363
|
-
site_admin:
|
|
337
|
+
site_admin: random_boolean,
|
|
364
338
|
name: auth.name,
|
|
365
339
|
company: nil,
|
|
366
340
|
blog: nil,
|
|
@@ -379,6 +353,94 @@ module Faker
|
|
|
379
353
|
}
|
|
380
354
|
end
|
|
381
355
|
|
|
356
|
+
##
|
|
357
|
+
# Generate a mock Omniauth response from Apple.
|
|
358
|
+
#
|
|
359
|
+
# @param name [String] A specific name to return in the response.
|
|
360
|
+
# @param email [String] A specific email to return in the response.
|
|
361
|
+
# @param uid [String] A specific UID to return in the response.
|
|
362
|
+
#
|
|
363
|
+
# @return [Hash] An auth hash in the format provided by omniauth-apple.
|
|
364
|
+
#
|
|
365
|
+
# @faker.version 2.3.0
|
|
366
|
+
def apple(name: nil, email: nil, uid: nil)
|
|
367
|
+
uid ||= "#{Number.number(digits: 6)}.#{Number.hexadecimal(digits: 32)}.#{Number.number(digits: 4)}"
|
|
368
|
+
auth = Omniauth.new(name: name, email: email)
|
|
369
|
+
{
|
|
370
|
+
provider: 'apple',
|
|
371
|
+
uid: uid,
|
|
372
|
+
info: {
|
|
373
|
+
sub: uid,
|
|
374
|
+
email: auth.email,
|
|
375
|
+
first_name: auth.first_name,
|
|
376
|
+
last_name: auth.last_name
|
|
377
|
+
},
|
|
378
|
+
credentials: {
|
|
379
|
+
token: Crypto.md5,
|
|
380
|
+
refresh_token: Crypto.md5,
|
|
381
|
+
expires_at: Time.forward.to_i,
|
|
382
|
+
expires: true
|
|
383
|
+
},
|
|
384
|
+
extra: {
|
|
385
|
+
raw_info: {
|
|
386
|
+
iss: 'https://appleid.apple.com',
|
|
387
|
+
aud: 'CLIENT_ID',
|
|
388
|
+
exp: Time.forward.to_i,
|
|
389
|
+
iat: Time.forward.to_i,
|
|
390
|
+
sub: uid,
|
|
391
|
+
at_hash: Crypto.md5,
|
|
392
|
+
auth_time: Time.forward.to_i,
|
|
393
|
+
email: auth.email,
|
|
394
|
+
email_verified: true
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
end
|
|
399
|
+
|
|
400
|
+
##
|
|
401
|
+
# Generate a mock Omniauth response from Auth0.
|
|
402
|
+
#
|
|
403
|
+
# @param name [String] A specific name to return in the response.
|
|
404
|
+
# @param email [String] A specific email to return in the response.
|
|
405
|
+
# @param uid [String] A specific UID to return in the response.
|
|
406
|
+
#
|
|
407
|
+
# @return [Hash] An auth hash in the format provided by omniauth-auth0.
|
|
408
|
+
#
|
|
409
|
+
# @faker.version next
|
|
410
|
+
def auth0(name: nil, email: nil, uid: nil)
|
|
411
|
+
uid ||= "auth0|#{Number.hexadecimal(digits: 24)}"
|
|
412
|
+
auth = Omniauth.new(name: name, email: email)
|
|
413
|
+
{
|
|
414
|
+
provider: 'auth0',
|
|
415
|
+
uid: uid,
|
|
416
|
+
info: {
|
|
417
|
+
name: uid,
|
|
418
|
+
nickname: auth.name,
|
|
419
|
+
email: auth.email,
|
|
420
|
+
image: image
|
|
421
|
+
},
|
|
422
|
+
credentials: {
|
|
423
|
+
expires_at: Time.forward.to_i,
|
|
424
|
+
expires: true,
|
|
425
|
+
token_type: 'Bearer',
|
|
426
|
+
id_token: Crypto.sha256,
|
|
427
|
+
token: Crypto.md5,
|
|
428
|
+
refresh_token: Crypto.md5
|
|
429
|
+
},
|
|
430
|
+
extra: {
|
|
431
|
+
raw_info: {
|
|
432
|
+
email: auth.email,
|
|
433
|
+
email_verified: true,
|
|
434
|
+
iss: 'https://auth0.com/',
|
|
435
|
+
sub: uid,
|
|
436
|
+
aud: 'Auth012345',
|
|
437
|
+
iat: Time.forward.to_i,
|
|
438
|
+
exp: Time.forward.to_i
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
end
|
|
443
|
+
|
|
382
444
|
private
|
|
383
445
|
|
|
384
446
|
def gender
|
|
@@ -3,49 +3,127 @@
|
|
|
3
3
|
module Faker
|
|
4
4
|
class PhoneNumber < Base
|
|
5
5
|
class << self
|
|
6
|
+
##
|
|
7
|
+
# Produces a random phone number in a random format (may or may not have a country code, extension and can have different dividers).
|
|
8
|
+
#
|
|
9
|
+
# @return [String]
|
|
10
|
+
#
|
|
11
|
+
# @example
|
|
12
|
+
# Faker::PhoneNumber.phone_number #=> "397.693.1309 x4321"
|
|
13
|
+
#
|
|
14
|
+
# @faker.version 0.3.0
|
|
6
15
|
def phone_number
|
|
7
16
|
parse('phone_number.formats')
|
|
8
17
|
end
|
|
9
18
|
|
|
19
|
+
##
|
|
20
|
+
# Produces a random cell phone number in a random format (may or may not have a country code and can have different dividers).
|
|
21
|
+
#
|
|
22
|
+
# @return [String]
|
|
23
|
+
#
|
|
24
|
+
# @example
|
|
25
|
+
# Faker::PhoneNumber.cell_phone #=> "(186)285-7925"
|
|
26
|
+
#
|
|
27
|
+
# @faker.version 1.0.0
|
|
10
28
|
def cell_phone
|
|
11
29
|
parse('cell_phone.formats')
|
|
12
30
|
end
|
|
13
31
|
|
|
32
|
+
##
|
|
33
|
+
# Produces a random country code.
|
|
34
|
+
#
|
|
35
|
+
# @return [String]
|
|
36
|
+
#
|
|
37
|
+
# @example
|
|
38
|
+
# Faker::PhoneNumber.country_code #=> "+20"
|
|
39
|
+
#
|
|
40
|
+
# @faker.version 1.9.2
|
|
14
41
|
def country_code
|
|
15
42
|
"+#{fetch('country_code')}"
|
|
16
43
|
end
|
|
17
44
|
|
|
45
|
+
##
|
|
46
|
+
# Produces a random phone number with country code.
|
|
47
|
+
#
|
|
48
|
+
# @return [String]
|
|
49
|
+
#
|
|
50
|
+
# @example
|
|
51
|
+
# Faker::PhoneNumber.phone_number_with_country_code #=> "+95 1-672-173-8153"
|
|
52
|
+
#
|
|
53
|
+
# @faker.version 1.9.2
|
|
18
54
|
def phone_number_with_country_code
|
|
19
55
|
"#{country_code} #{phone_number}"
|
|
20
56
|
end
|
|
21
57
|
|
|
58
|
+
##
|
|
59
|
+
# Produces a random cell phone number with country code.
|
|
60
|
+
#
|
|
61
|
+
# @return [String]
|
|
62
|
+
#
|
|
63
|
+
# @example
|
|
64
|
+
# Faker::PhoneNumber.cell_phone_with_country_code #=> "+974 (190) 987-9034"
|
|
65
|
+
#
|
|
66
|
+
# @faker.version 1.9.2
|
|
22
67
|
def cell_phone_with_country_code
|
|
23
68
|
"#{country_code} #{cell_phone}"
|
|
24
69
|
end
|
|
25
70
|
|
|
26
|
-
|
|
71
|
+
##
|
|
72
|
+
# Produces a random phone number in e164 format.
|
|
73
|
+
#
|
|
74
|
+
# @return [String]
|
|
75
|
+
#
|
|
76
|
+
# @example
|
|
77
|
+
# Faker::PhoneNumber.cell_phone_in_e164 #=> "+944937040625"
|
|
78
|
+
#
|
|
79
|
+
# @faker.version 1.9.2
|
|
80
|
+
def cell_phone_in_e164
|
|
81
|
+
cell_phone_with_country_code.delete('^+0-9')
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
##
|
|
85
|
+
# Produces a random US or Canada-based area code.
|
|
86
|
+
#
|
|
87
|
+
# @return [String]
|
|
88
|
+
#
|
|
89
|
+
# @example
|
|
90
|
+
# Faker::PhoneNumber.area_code #=> "201"
|
|
91
|
+
#
|
|
92
|
+
# @faker.version 1.3.0
|
|
27
93
|
def area_code
|
|
28
94
|
fetch('phone_number.area_code')
|
|
29
95
|
rescue I18n::MissingTranslationData
|
|
30
96
|
nil
|
|
31
97
|
end
|
|
32
98
|
|
|
33
|
-
|
|
99
|
+
##
|
|
100
|
+
# Produces a random US or Canada-based exchange code.
|
|
101
|
+
#
|
|
102
|
+
# @return [String]
|
|
103
|
+
#
|
|
104
|
+
# @example
|
|
105
|
+
# Faker::PhoneNumber.exchange_code #=> "208"
|
|
106
|
+
#
|
|
107
|
+
# @faker.version 1.3.0
|
|
34
108
|
def exchange_code
|
|
35
109
|
fetch('phone_number.exchange_code')
|
|
36
110
|
rescue I18n::MissingTranslationData
|
|
37
111
|
nil
|
|
38
112
|
end
|
|
39
113
|
|
|
40
|
-
|
|
41
|
-
# Can be used for both extensions and last four digits of phone number.
|
|
42
|
-
#
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
114
|
+
##
|
|
115
|
+
# Produces a random US or Canada-based extension / subscriber number. Can be used for both extensions and last four digits of phone number.
|
|
116
|
+
#
|
|
117
|
+
# @param length [Integer] Specifies the length of the return value.
|
|
118
|
+
# @return [String]
|
|
119
|
+
#
|
|
120
|
+
# @example
|
|
121
|
+
# Faker::PhoneNumber.subscriber_number #=> "3873"
|
|
122
|
+
# Faker::PhoneNumber.subscriber_number(length: 2) #=> "39"
|
|
123
|
+
# Faker::PhoneNumber.extension #=> "3764"
|
|
124
|
+
#
|
|
125
|
+
# @faker.version 1.3.0
|
|
126
|
+
def subscriber_number(length: 4)
|
|
49
127
|
rand.to_s[2..(1 + length)]
|
|
50
128
|
end
|
|
51
129
|
|
|
@@ -5,30 +5,28 @@ module Faker
|
|
|
5
5
|
class << self
|
|
6
6
|
SUPPORTED_FORMATS = %w[png jpg gif jpeg].freeze
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
end
|
|
31
|
-
|
|
8
|
+
##
|
|
9
|
+
# Produces a random placeholder image from https://via.placeholder.com.
|
|
10
|
+
#
|
|
11
|
+
# @param size [String] Specifies the image's size, dimensions separated by 'x'.
|
|
12
|
+
# @param format [String] Specifies the image's extension.
|
|
13
|
+
# @param background_color [String, Symbol] Specifies the background color, either in hexadecimal format (without #) or as :random.
|
|
14
|
+
# @param text_color [String, Symbol] Specifies the text color, either in hexadecimal format (without #) or as :random.
|
|
15
|
+
# @param text [String] Specifies a custom text to be used.
|
|
16
|
+
# @return [String]
|
|
17
|
+
#
|
|
18
|
+
# @example
|
|
19
|
+
# # Keyword arguments: size, format, background_color, text_color, text
|
|
20
|
+
# Faker::Placeholdit.image #=> "https://via.placeholder.com/300x300.png"
|
|
21
|
+
# Faker::Placeholdit.image(size: '50x50') #=> "https://via.placeholder.com/50x50.png"
|
|
22
|
+
# Faker::Placeholdit.image(size: '50x50', format: 'jpg') #=> "https://via.placeholder.com/50x50.jpg"
|
|
23
|
+
# Faker::Placeholdit.image(size: '50x50', format: 'gif', background_color: 'ffffff') #=> "https://via.placeholder.com/50x50.gif/ffffff"
|
|
24
|
+
# Faker::Placeholdit.image(size: '50x50', format: 'jpeg', background_color: :random) #=> "https://via.placeholder.com/50x50.jpeg/39eba7"
|
|
25
|
+
# Faker::Placeholdit.image(size: '50x50', format: 'jpeg', background_color: 'ffffff', text_color: '000') #=> "https://via.placeholder.com/50x50.jpeg/ffffff/000"
|
|
26
|
+
# Faker::Placeholdit.image(size: '50x50', format: 'jpg', background_color: 'ffffff', text_color: '000', text: 'Some Custom Text') #=> "https://via.placeholder.com/50x50.jpg/ffffff/000?text=Some Custom Text"
|
|
27
|
+
#
|
|
28
|
+
# @faker.version 1.6.0
|
|
29
|
+
def image(size: '300x300', format: 'png', background_color: nil, text_color: nil, text: nil)
|
|
32
30
|
background_color = generate_color if background_color == :random
|
|
33
31
|
text_color = generate_color if text_color == :random
|
|
34
32
|
|
|
@@ -37,7 +35,7 @@ module Faker
|
|
|
37
35
|
raise ArgumentError, "background_color must be a hex value without '#'" unless background_color.nil? || background_color =~ /((?:^\h{3}$)|(?:^\h{6}$)){1}(?!.*\H)/
|
|
38
36
|
raise ArgumentError, "text_color must be a hex value without '#'" unless text_color.nil? || text_color =~ /((?:^\h{3}$)|(?:^\h{6}$)){1}(?!.*\H)/
|
|
39
37
|
|
|
40
|
-
image_url = "https://
|
|
38
|
+
image_url = "https://via.placeholder.com/#{size}.#{format}"
|
|
41
39
|
image_url += "/#{background_color}" if background_color
|
|
42
40
|
image_url += "/#{text_color}" if text_color
|
|
43
41
|
image_url += "?text=#{text}" if text
|