faker 1.8.2 → 2.23.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/CHANGELOG.md +1756 -10
- data/History.md +4 -4
- data/License.txt +2 -2
- data/README.md +328 -111
- data/bin/faker +5 -0
- data/lib/faker/blockchain/aeternity.rb +70 -0
- data/lib/faker/blockchain/bitcoin.rb +60 -0
- data/lib/faker/blockchain/ethereum.rb +26 -0
- data/lib/faker/blockchain/tezos.rb +135 -0
- data/lib/faker/books/book.rb +61 -0
- data/lib/faker/books/culture_series.rb +83 -0
- data/lib/faker/books/dune.rb +132 -0
- data/lib/faker/books/lovecraft.rb +280 -0
- data/lib/faker/books/the_kingkiller_chronicle.rb +61 -0
- data/lib/faker/creature/animal.rb +22 -0
- data/lib/faker/creature/bird.rb +203 -0
- data/lib/faker/creature/cat.rb +50 -0
- data/lib/faker/creature/dog.rb +115 -0
- data/lib/faker/creature/horse.rb +37 -0
- data/lib/faker/default/address.rb +368 -0
- data/lib/faker/default/adjective.rb +35 -0
- data/lib/faker/default/alphanumeric.rb +73 -0
- data/lib/faker/default/ancient.rb +59 -0
- data/lib/faker/default/app.rb +77 -0
- data/lib/faker/default/appliance.rb +33 -0
- data/lib/faker/default/artist.rb +20 -0
- data/lib/faker/default/avatar.rb +60 -0
- data/lib/faker/default/bank.rb +207 -0
- data/lib/faker/default/barcode.rb +165 -0
- data/lib/faker/default/beer.rb +113 -0
- data/lib/faker/default/blood.rb +48 -0
- data/lib/faker/default/boolean.rb +26 -0
- data/lib/faker/default/bossa_nova.rb +33 -0
- data/lib/faker/default/business.rb +50 -0
- data/lib/faker/default/camera.rb +46 -0
- data/lib/faker/default/cannabis.rb +135 -0
- data/lib/faker/default/chile_rut.rb +102 -0
- data/lib/faker/default/chuck_norris.rb +25 -0
- data/lib/faker/default/code.rb +282 -0
- data/lib/faker/default/coffee.rb +82 -0
- data/lib/faker/default/coin.rb +33 -0
- data/lib/faker/default/color.rb +79 -0
- data/lib/faker/default/commerce.rb +171 -0
- data/lib/faker/default/company.rb +579 -0
- data/lib/faker/default/compass.rb +202 -0
- data/lib/faker/default/computer.rb +63 -0
- data/lib/faker/default/construction.rb +83 -0
- data/lib/faker/default/cosmere.rb +138 -0
- data/lib/faker/default/crypto.rb +61 -0
- data/lib/faker/default/crypto_coin.rb +94 -0
- data/lib/faker/default/currency.rb +46 -0
- data/lib/faker/default/date.rb +186 -0
- data/lib/faker/default/dc_comics.rb +70 -0
- data/lib/faker/default/demographic.rb +98 -0
- data/lib/faker/default/dessert.rb +48 -0
- data/lib/faker/default/device.rb +85 -0
- data/lib/faker/default/driving_licence.rb +131 -0
- data/lib/faker/default/drone.rb +332 -0
- data/lib/faker/default/educator.rb +102 -0
- data/lib/faker/default/electrical_components.rb +48 -0
- data/lib/faker/default/emotion.rb +33 -0
- data/lib/faker/default/esport.rb +72 -0
- data/lib/faker/default/file.rb +100 -0
- data/lib/faker/default/fillmurray.rb +45 -0
- data/lib/faker/default/finance.rb +116 -0
- data/lib/faker/default/food.rb +126 -0
- data/lib/faker/default/funny_name.rb +90 -0
- data/lib/faker/default/gender.rb +46 -0
- data/lib/faker/default/greek_philosophers.rb +33 -0
- data/lib/faker/default/hacker.rb +103 -0
- data/lib/faker/default/hipster.rb +194 -0
- data/lib/faker/default/hobby.rb +22 -0
- data/lib/faker/default/house.rb +33 -0
- data/lib/faker/default/id_number.rb +418 -0
- data/lib/faker/default/industry_segments.rb +61 -0
- data/lib/faker/default/internet.rb +629 -0
- data/lib/faker/default/internet_http.rb +48 -0
- data/lib/faker/default/invoice.rb +136 -0
- data/lib/faker/default/job.rb +61 -0
- data/lib/faker/default/json.rb +143 -0
- data/lib/faker/default/kpop.rb +85 -0
- data/lib/faker/default/lorem.rb +302 -0
- data/lib/faker/default/lorem_flickr.rb +138 -0
- data/lib/faker/default/lorem_pixel.rb +70 -0
- data/lib/faker/default/markdown.rb +175 -0
- data/lib/faker/default/marketing.rb +22 -0
- data/lib/faker/default/measurement.rb +207 -0
- data/lib/faker/default/military.rb +98 -0
- data/lib/faker/default/mountain.rb +33 -0
- data/lib/faker/default/name.rb +156 -0
- data/lib/faker/default/nation.rb +73 -0
- data/lib/faker/default/nato_phonetic_alphabet.rb +20 -0
- data/lib/faker/default/nhs.rb +57 -0
- data/lib/faker/default/number.rb +289 -0
- data/lib/faker/default/omniauth.rb +505 -0
- data/lib/faker/default/phone_number.rb +137 -0
- data/lib/faker/default/placeholdit.rb +63 -0
- data/lib/faker/default/programming_language.rb +33 -0
- data/lib/faker/default/relationship.rb +91 -0
- data/lib/faker/default/religion.rb +6 -0
- data/lib/faker/default/restaurant.rb +63 -0
- data/lib/faker/default/science.rb +154 -0
- data/lib/faker/default/slack_emoji.rb +124 -0
- data/lib/faker/default/source.rb +76 -0
- data/lib/faker/default/south_africa.rb +141 -0
- data/lib/faker/default/space.rb +191 -0
- data/lib/faker/default/string.rb +63 -0
- data/lib/faker/default/stripe.rb +142 -0
- data/lib/faker/default/subscription.rb +70 -0
- data/lib/faker/default/superhero.rb +72 -0
- data/lib/faker/default/tea.rb +41 -0
- data/lib/faker/default/team.rb +74 -0
- data/lib/faker/default/time.rb +177 -0
- data/lib/faker/default/twitter.rb +223 -0
- data/lib/faker/default/types.rb +182 -0
- data/lib/faker/default/university.rb +75 -0
- data/lib/faker/default/vehicle.rb +355 -0
- data/lib/faker/default/verb.rb +72 -0
- data/lib/faker/default/vulnerability_identifier.rb +23 -0
- data/lib/faker/default/world_cup.rb +86 -0
- 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 +136 -0
- data/lib/faker/games/dota.rb +93 -0
- data/lib/faker/games/elder_scrolls.rb +139 -0
- data/lib/faker/games/fallout.rb +62 -0
- data/lib/faker/games/game.rb +48 -0
- data/lib/faker/games/half_life.rb +48 -0
- data/lib/faker/games/heroes.rb +61 -0
- data/lib/faker/games/heroes_of_the_storm.rb +72 -0
- data/lib/faker/games/league_of_legends.rb +87 -0
- data/lib/faker/games/minecraft.rb +113 -0
- data/lib/faker/games/myst.rb +74 -0
- data/lib/faker/games/overwatch.rb +48 -0
- data/lib/faker/games/pokemon.rb +48 -0
- data/lib/faker/games/sonic_the_hedgehog.rb +48 -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 +35 -0
- data/lib/faker/games/touhou.rb +75 -0
- data/lib/faker/games/warhammer_fantasy.rb +74 -0
- data/lib/faker/games/witcher.rb +126 -0
- data/lib/faker/games/world_of_warcraft.rb +60 -0
- data/lib/faker/games/zelda.rb +62 -0
- data/lib/faker/japanese_media/conan.rb +48 -0
- data/lib/faker/japanese_media/doraemon.rb +48 -0
- data/lib/faker/japanese_media/dragon_ball.rb +48 -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 +87 -0
- data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
- data/lib/faker/japanese_media/sword_art_online.rb +61 -0
- data/lib/faker/locations/australia.rb +47 -0
- data/lib/faker/movies/back_to_the_future.rb +49 -0
- data/lib/faker/movies/departed.rb +49 -0
- data/lib/faker/movies/ghostbusters.rb +49 -0
- data/lib/faker/movies/harry_potter.rb +87 -0
- data/lib/faker/movies/hitchhikers_guide_to_the_galaxy.rb +106 -0
- data/lib/faker/movies/hobbit.rb +62 -0
- data/lib/faker/movies/how_to_train_your_dragon.rb +48 -0
- data/lib/faker/movies/lebowski.rb +48 -0
- data/lib/faker/movies/lord_of_the_rings.rb +49 -0
- data/lib/faker/movies/movie.rb +33 -0
- data/lib/faker/movies/princess_bride.rb +36 -0
- data/lib/faker/movies/room.rb +63 -0
- data/lib/faker/movies/star_wars.rb +273 -0
- data/lib/faker/movies/tron.rb +161 -0
- data/lib/faker/movies/v_for_vendetta.rb +50 -0
- data/lib/faker/music/grateful_dead.rb +37 -0
- data/lib/faker/music/hiphop.rb +48 -0
- data/lib/faker/music/music.rb +145 -0
- data/lib/faker/music/opera.rb +298 -0
- data/lib/faker/music/pearl_jam.rb +50 -0
- data/lib/faker/music/phish.rb +48 -0
- data/lib/faker/music/prince.rb +64 -0
- data/lib/faker/music/rock_band.rb +34 -0
- data/lib/faker/music/rush.rb +37 -0
- data/lib/faker/music/show.rb +49 -0
- data/lib/faker/music/umphreys_mcgee.rb +22 -0
- data/lib/faker/quotes/chiquito.rb +80 -0
- data/lib/faker/quotes/quote.rb +111 -0
- data/lib/faker/quotes/rajnikanth.rb +27 -0
- data/lib/faker/quotes/shakespeare.rb +111 -0
- data/lib/faker/religion/bible.rb +50 -0
- data/lib/faker/sports/basketball.rb +61 -0
- data/lib/faker/sports/football.rb +74 -0
- data/lib/faker/sports/mountaineering.rb +22 -0
- data/lib/faker/sports/sport.rb +110 -0
- data/lib/faker/sports/volleyball.rb +74 -0
- data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +37 -0
- data/lib/faker/tv_shows/big_bang_theory.rb +37 -0
- data/lib/faker/tv_shows/bojack_horseman.rb +51 -0
- data/lib/faker/tv_shows/breaking_bad.rb +37 -0
- data/lib/faker/tv_shows/brooklyn_nine_nine.rb +38 -0
- data/lib/faker/tv_shows/buffy.rb +89 -0
- data/lib/faker/tv_shows/community.rb +38 -0
- data/lib/faker/tv_shows/dr_who.rb +115 -0
- data/lib/faker/tv_shows/dumb_and_dumber.rb +51 -0
- data/lib/faker/tv_shows/family_guy.rb +51 -0
- data/lib/faker/tv_shows/final_space.rb +51 -0
- data/lib/faker/tv_shows/friends.rb +50 -0
- data/lib/faker/tv_shows/futurama.rb +65 -0
- data/lib/faker/tv_shows/game_of_thrones.rb +77 -0
- data/lib/faker/tv_shows/hey_arnold.rb +50 -0
- data/lib/faker/tv_shows/how_i_met_your_mother.rb +64 -0
- data/lib/faker/tv_shows/michael_scott.rb +23 -0
- data/lib/faker/tv_shows/new_girl.rb +38 -0
- data/lib/faker/tv_shows/parks_and_rec.rb +37 -0
- data/lib/faker/tv_shows/rick_and_morty.rb +51 -0
- data/lib/faker/tv_shows/ru_paul.rb +37 -0
- data/lib/faker/tv_shows/seinfeld.rb +51 -0
- data/lib/faker/tv_shows/silicon_valley.rb +118 -0
- data/lib/faker/tv_shows/simpsons.rb +65 -0
- data/lib/faker/tv_shows/south_park.rb +38 -0
- data/lib/faker/tv_shows/star_trek.rb +63 -0
- data/lib/faker/tv_shows/stargate.rb +51 -0
- data/lib/faker/tv_shows/stranger_things.rb +38 -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 +63 -0
- data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +64 -0
- data/lib/faker/tv_shows/the_it_crowd.rb +64 -0
- data/lib/faker/tv_shows/the_office.rb +37 -0
- data/lib/faker/tv_shows/the_thick_of_it.rb +51 -0
- data/lib/faker/tv_shows/twin_peaks.rb +51 -0
- data/lib/faker/tv_shows/venture_bros.rb +65 -0
- data/lib/faker/version.rb +4 -2
- data/lib/faker.rb +166 -66
- data/lib/helpers/base58.rb +22 -0
- data/lib/helpers/char.rb +37 -20
- data/lib/helpers/unique_generator.rb +34 -6
- data/lib/locales/README.md +40 -0
- data/lib/locales/ar.yml +106 -0
- data/lib/locales/bg.yml +5 -2
- data/lib/locales/ca-CAT.yml +1 -1
- data/lib/locales/ca.yml +2 -4
- data/lib/locales/da-DK.yml +10 -6
- data/lib/locales/de-AT.yml +14 -5
- data/lib/locales/de-CH.yml +1696 -1
- data/lib/locales/de.yml +27 -13
- data/lib/locales/ee.yml +61 -0
- data/lib/locales/en/address.yml +553 -4
- data/lib/locales/en/adjective.yml +179 -0
- data/lib/locales/en/ancient.yml +7 -0
- data/lib/locales/en/animal.yml +6 -0
- data/lib/locales/en/app.yml +8 -0
- data/lib/locales/en/appliance.yml +5 -0
- data/lib/locales/en/aqua_teen_hunger_force.yml +36 -0
- data/lib/locales/en/artist.yml +4 -0
- data/lib/locales/en/australia.yml +107 -0
- data/lib/locales/en/back_to_the_future.yml +120 -0
- data/lib/locales/en/bank.yml +302 -0
- data/lib/locales/en/barcode.yml +24 -0
- data/lib/locales/en/basketball.yml +99 -0
- data/lib/locales/en/beer.yml +9 -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/bojack_horseman.yml +6 -0
- data/lib/locales/en/book.yml +491 -0
- data/lib/locales/en/bossa_nova.yml +6 -0
- data/lib/locales/en/breaking_bad.yml +28 -0
- data/lib/locales/en/brooklyn_nine_nine.yml +35 -0
- data/lib/locales/en/buffy.yml +260 -0
- data/lib/locales/en/business.yml +5 -0
- data/lib/locales/en/camera.yml +611 -0
- data/lib/locales/en/cannabis.yml +13 -0
- data/lib/locales/en/cat.yml +7 -0
- data/lib/locales/en/chiquito.yml +64 -0
- data/lib/locales/en/chuck_norris.yml +82 -0
- data/lib/locales/en/clash_of_clan.yml +101 -0
- data/lib/locales/en/code.yml +4 -0
- data/lib/locales/en/coffee.yml +31 -0
- data/lib/locales/en/coin.yml +6 -0
- data/lib/locales/en/color.yml +4 -0
- data/lib/locales/en/commerce.yml +28 -0
- data/lib/locales/en/community.yml +33 -0
- data/lib/locales/en/company.yml +22 -0
- data/lib/locales/en/compass.yml +34 -0
- data/lib/locales/en/computer.yml +55 -0
- data/lib/locales/en/conan.yml +171 -0
- data/lib/locales/en/construction.yml +425 -0
- data/lib/locales/en/control.yml +247 -0
- data/lib/locales/en/cosmere.yml +57 -0
- data/lib/locales/en/crypto_coin.yml +25 -0
- data/lib/locales/en/culture_series.yml +307 -0
- data/lib/locales/en/currency.yml +6 -0
- data/lib/locales/en/dc_comics.yml +52 -0
- data/lib/locales/en/demographic.yml +221 -0
- data/lib/locales/en/departed.yml +50 -0
- data/lib/locales/en/dessert.yml +6 -0
- data/lib/locales/en/device.yml +115 -0
- data/lib/locales/en/dnd.yml +451 -0
- data/lib/locales/en/dog.yml +11 -0
- data/lib/locales/en/doraemon.yml +286 -0
- data/lib/locales/en/dota.yml +693 -0
- data/lib/locales/en/dr_who.yml +31 -9
- data/lib/locales/en/dragon_ball.yml +246 -0
- 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 +59 -0
- data/lib/locales/en/dune.yml +298 -0
- data/lib/locales/en/educator.yml +80 -0
- data/lib/locales/en/elder_scrolls.yml +585 -0
- data/lib/locales/en/electrical_components.yml +6 -0
- data/lib/locales/en/emotion.yml +480 -0
- data/lib/locales/en/esport.yml +8 -0
- data/lib/locales/en/fallout.yml +315 -0
- data/lib/locales/en/file.yml +13 -0
- data/lib/locales/en/final_space.yml +37 -0
- data/lib/locales/en/finance.yml +189 -0
- data/lib/locales/en/fma_brotherhood.yml +78 -0
- data/lib/locales/en/food.yml +1057 -0
- data/lib/locales/en/football.yml +8 -0
- data/lib/locales/en/fresh_prince_of_bel_air.yml +73 -0
- data/lib/locales/en/friends.yml +6 -0
- data/lib/locales/en/funny_name.yml +4 -0
- data/lib/locales/en/futurama.yml +344 -0
- data/lib/locales/en/game.yml +294 -0
- data/lib/locales/en/game_of_thrones.yml +8 -0
- data/lib/locales/en/gender.yml +6 -0
- data/lib/locales/en/ghostbusters.yml +91 -0
- data/lib/locales/en/grateful_dead.yml +48 -0
- data/lib/locales/en/greek_philosophers.yml +26 -0
- data/lib/locales/en/hacker.yml +8 -0
- data/lib/locales/en/half_life.yml +88 -0
- data/lib/locales/en/harry_potter.yml +9 -0
- data/lib/locales/en/heroes.yml +411 -0
- data/lib/locales/en/heroes_of_the_storm.yml +134 -0
- data/lib/locales/en/hey_arnold.yml +24 -0
- data/lib/locales/en/hipster.yml +4 -0
- data/lib/locales/en/hitchhikers_guide_to_the_galaxy.yml +45 -0
- data/lib/locales/en/hobby.yml +171 -0
- data/lib/locales/en/horse.yml +6 -0
- data/lib/locales/en/house.yml +5 -0
- data/lib/locales/en/how_i_met_your_mother.yml +28 -0
- data/lib/locales/en/how_to_train_your_dragon.yml +174 -0
- data/lib/locales/en/id_number.yml +5 -0
- data/lib/locales/en/industry_segments.yml +7 -0
- data/lib/locales/en/internet.yml +137 -3
- data/lib/locales/en/invoice.yml +6 -0
- data/lib/locales/en/jack_handey.yml +54 -0
- data/lib/locales/en/job.yml +15 -0
- data/lib/locales/en/kamen_rider.yml +452 -0
- data/lib/locales/en/kpop.yml +83 -0
- data/lib/locales/en/league_of_legends.yml +289 -0
- data/lib/locales/en/lebowski.yml +43 -0
- data/lib/locales/en/lorem.yml +11 -0
- data/lib/locales/en/lovecraft.yml +76 -6
- data/lib/locales/en/markdown.yml +5 -0
- data/lib/locales/en/marketing.yml +4 -0
- data/lib/locales/en/measurement.yml +11 -0
- data/lib/locales/en/michael_scott.yml +45 -0
- data/lib/locales/en/military.yml +182 -0
- data/lib/locales/en/minecraft.yml +663 -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 +464 -0
- data/lib/locales/en/myst.yml +104 -0
- data/lib/locales/en/name.yml +26 -0
- data/lib/locales/en/naruto.yml +230 -0
- data/lib/locales/en/nation.yml +11 -0
- data/lib/locales/en/nato_phonetic_alphabet.yml +4 -0
- data/lib/locales/en/new_girl.yml +40 -0
- data/lib/locales/en/one_piece.yml +9 -0
- data/lib/locales/en/opera.yml +340 -0
- data/lib/locales/en/overwatch.yml +2654 -0
- data/lib/locales/en/parks_and_rec.yml +7 -0
- data/lib/locales/en/pearl_jam.yml +213 -0
- data/lib/locales/en/phish.yml +395 -0
- data/lib/locales/en/phone_number.yml +7 -0
- data/lib/locales/en/pokemon.yml +421 -0
- data/lib/locales/en/prince.yml +227 -0
- data/lib/locales/en/princess_bride.yml +5 -0
- data/lib/locales/en/programming_language.yml +6 -0
- data/lib/locales/en/quote.yml +695 -0
- data/lib/locales/en/rajnikanth.yml +77 -0
- data/lib/locales/en/relationship.yml +10 -0
- data/lib/locales/en/restaurant.yml +129 -0
- data/lib/locales/en/rock_band.yml +5 -0
- data/lib/locales/en/room.yml +68 -0
- data/lib/locales/en/rupaul.yml +125 -0
- data/lib/locales/en/rush.yml +32 -0
- data/lib/locales/en/science.yml +484 -0
- data/lib/locales/en/seinfeld.yml +6 -0
- data/lib/locales/en/shakespeare.yml +53 -0
- data/lib/locales/en/show.yml +597 -0
- data/lib/locales/en/silicon_valley.yml +53 -0
- data/lib/locales/en/simpsons.yml +694 -0
- data/lib/locales/en/slack_emoji.yml +20 -0
- data/lib/locales/en/sonic_the_hedgehog.yml +410 -0
- data/lib/locales/en/source.yml +46 -0
- data/lib/locales/en/south_park.yml +5 -0
- data/lib/locales/en/space.yml +17 -0
- data/lib/locales/en/sport.yml +121 -0
- data/lib/locales/en/star_trek.yml +7 -0
- data/lib/locales/en/star_wars.yml +606 -0
- data/lib/locales/en/stargate.yml +21 -0
- data/lib/locales/en/stranger_thing.yml +36 -0
- data/lib/locales/en/street_fighter.yml +1524 -0
- data/lib/locales/en/stripe.yml +42 -0
- data/lib/locales/en/studio_ghibli.yml +107 -0
- data/lib/locales/en/subscription.yml +8 -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 +223 -0
- data/lib/locales/en/superhero.yml +12 -0
- data/lib/locales/en/supernatural.yml +141 -0
- data/lib/locales/en/sword_art_online.yml +334 -0
- data/lib/locales/en/tea.yml +172 -0
- data/lib/locales/en/team.yml +8 -0
- data/lib/locales/en/the_expanse.yml +7 -0
- data/lib/locales/en/the_it_crowd.yml +155 -0
- data/lib/locales/en/the_kingkiller_chronicle.yml +56 -0
- data/lib/locales/en/the_office.yml +86 -0
- data/lib/locales/en/the_thick_of_it.yml +6 -0
- data/lib/locales/en/tolkien.yml +2453 -0
- data/lib/locales/en/touhou.yml +839 -0
- data/lib/locales/en/tron.yml +227 -0
- data/lib/locales/en/twin_peaks.yml +6 -0
- data/lib/locales/en/umphreys_mcgee.yml +4 -0
- data/lib/locales/en/university.yml +10 -0
- data/lib/locales/en/v_for_vendetta.yml +163 -0
- data/lib/locales/en/vehicle.yml +2814 -0
- data/lib/locales/en/venture_bros.yml +7 -0
- data/lib/locales/en/verbs.yml +8 -0
- data/lib/locales/en/volleyball.yml +501 -0
- data/lib/locales/en/warhammer_fantasy.yml +582 -0
- data/lib/locales/en/witcher.yml +430 -0
- data/lib/locales/en/world_cup.yml +271 -0
- data/lib/locales/en/world_of_warcraft.yml +126 -0
- data/lib/locales/en/yoda.yml +4 -0
- data/lib/locales/en/zelda.yml +966 -0
- data/lib/locales/en-AU.yml +50 -8
- data/lib/locales/en-CA.yml +27 -2
- data/lib/locales/en-GB.yml +2 -1
- data/lib/locales/en-IND.yml +5 -2
- data/lib/locales/en-MS.yml +10 -1
- data/lib/locales/en-NEP.yml +6 -3
- data/lib/locales/en-NG.yml +2 -0
- data/lib/locales/en-NZ.yml +140 -17
- data/lib/locales/en-PAK.yml +4 -2
- data/lib/locales/en-SG.yml +6 -1
- data/lib/locales/en-TH.yml +360 -0
- data/lib/locales/en-US.yml +38 -10
- data/lib/locales/en-ZA.yml +114 -17
- data/lib/locales/en-au-ocker.yml +2 -1
- data/lib/locales/en.yml +0 -746
- data/lib/locales/es-AR.yml +4600 -0
- data/lib/locales/es-MX.yml +17 -1
- data/lib/locales/es.yml +75 -1
- data/lib/locales/fa.yml +6 -0
- data/lib/locales/fi-FI.yml +12 -6
- data/lib/locales/fr/address.yml +21 -0
- data/lib/locales/fr/adjective.yml +266 -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 +21 -0
- data/lib/locales/fr/phone_number.yml +7 -0
- data/lib/locales/fr/pokemon.yml +7 -0
- data/lib/locales/fr-CA.yml +107 -0
- data/lib/locales/fr-CH.yml +78 -0
- data/lib/locales/fr.yml +1 -65
- data/lib/locales/he.yml +2 -0
- data/lib/locales/hy.yml +411 -0
- data/lib/locales/id.yml +7 -2
- data/lib/locales/it.yml +15 -3
- 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/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/university.yml +9 -0
- data/lib/locales/ja/zelda.yml +5 -0
- data/lib/locales/ko.yml +98 -3
- data/lib/locales/lt.yml +35 -0
- data/lib/locales/lv.yml +55 -0
- data/lib/locales/mi-NZ.yml +281 -0
- data/lib/locales/nb-NO.yml +15 -6
- data/lib/locales/nl.yml +13 -4
- data/lib/locales/no.yml +7 -0
- data/lib/locales/pl.yml +13 -2
- data/lib/locales/pt-BR.yml +657 -17
- data/lib/locales/pt.yml +16 -6
- data/lib/locales/ru.yml +54 -5
- data/lib/locales/sk.yml +21 -13
- data/lib/locales/sv.yml +15 -7
- data/lib/locales/th.yml +380 -0
- data/lib/locales/tr.yml +14 -0
- data/lib/locales/uk.yml +17 -4
- data/lib/locales/vi.yml +7 -2
- data/lib/locales/zh-CN.yml +10 -4
- data/lib/locales/zh-TW.yml +3 -1
- metadata +620 -98
- data/lib/extensions/array.rb +0 -22
- data/lib/extensions/symbol.rb +0 -9
- data/lib/faker/address.rb +0 -67
- data/lib/faker/ancient.rb +0 -21
- data/lib/faker/app.rb +0 -18
- data/lib/faker/artist.rb +0 -9
- data/lib/faker/avatar.rb +0 -15
- data/lib/faker/bank.rb +0 -31
- data/lib/faker/beer.rb +0 -40
- data/lib/faker/bitcoin.rb +0 -48
- data/lib/faker/book.rb +0 -23
- data/lib/faker/boolean.rb +0 -9
- data/lib/faker/business.rb +0 -22
- data/lib/faker/cat.rb +0 -19
- data/lib/faker/chuck_norris.rb +0 -11
- data/lib/faker/code.rb +0 -147
- data/lib/faker/coffee.rb +0 -29
- data/lib/faker/color.rb +0 -30
- data/lib/faker/commerce.rb +0 -64
- data/lib/faker/company.rb +0 -141
- data/lib/faker/compass.rb +0 -65
- data/lib/faker/crypto.rb +0 -19
- data/lib/faker/date.rb +0 -78
- data/lib/faker/demographic.rb +0 -35
- data/lib/faker/dessert.rb +0 -19
- data/lib/faker/dr_who.rb +0 -34
- data/lib/faker/dragon_ball.rb +0 -9
- data/lib/faker/educator.rb +0 -23
- data/lib/faker/esport.rb +0 -25
- data/lib/faker/family_guy.rb +0 -17
- data/lib/faker/file.rb +0 -24
- data/lib/faker/fillmurray.rb +0 -14
- data/lib/faker/finance.rb +0 -28
- data/lib/faker/food.rb +0 -21
- data/lib/faker/friends.rb +0 -17
- data/lib/faker/funny_name.rb +0 -43
- data/lib/faker/game_of_thrones.rb +0 -25
- data/lib/faker/hacker.rb +0 -45
- data/lib/faker/harry_potter.rb +0 -21
- data/lib/faker/hey_arnold.rb +0 -17
- data/lib/faker/hipster.rb +0 -59
- data/lib/faker/hitchhikers_guide_to_the_galaxy.rb +0 -33
- data/lib/faker/hobbit.rb +0 -21
- data/lib/faker/how_i_met_your_mother.rb +0 -21
- data/lib/faker/id_number.rb +0 -36
- data/lib/faker/internet.rb +0 -178
- data/lib/faker/job.rb +0 -16
- data/lib/faker/league_of_legends.rb +0 -29
- data/lib/faker/lord_of_the_rings.rb +0 -13
- data/lib/faker/lorem.rb +0 -68
- data/lib/faker/lorem_pixel.rb +0 -21
- data/lib/faker/lovecraft.rb +0 -73
- data/lib/faker/markdown.rb +0 -66
- data/lib/faker/matz.rb +0 -9
- data/lib/faker/movie.rb +0 -9
- data/lib/faker/music.rb +0 -33
- data/lib/faker/name.rb +0 -42
- data/lib/faker/number.rb +0 -86
- data/lib/faker/omniauth.rb +0 -340
- data/lib/faker/overwatch.rb +0 -17
- data/lib/faker/phone_number.rb +0 -44
- data/lib/faker/placeholdit.rb +0 -20
- data/lib/faker/pokemon.rb +0 -17
- data/lib/faker/rick_and_morty.rb +0 -17
- data/lib/faker/robin.rb +0 -9
- data/lib/faker/rock_band.rb +0 -9
- data/lib/faker/rupaul.rb +0 -11
- data/lib/faker/shakespeare.rb +0 -83
- data/lib/faker/simpsons.rb +0 -22
- data/lib/faker/slack_emoji.rb +0 -43
- data/lib/faker/space.rb +0 -58
- data/lib/faker/star_trek.rb +0 -21
- data/lib/faker/star_wars.rb +0 -80
- data/lib/faker/superhero.rb +0 -25
- data/lib/faker/team.rb +0 -24
- data/lib/faker/time.rb +0 -51
- data/lib/faker/twin_peaks.rb +0 -17
- data/lib/faker/twitter.rb +0 -172
- data/lib/faker/university.rb +0 -20
- data/lib/faker/vehicle.rb +0 -37
- data/lib/faker/yoda.rb +0 -10
- data/lib/faker/zelda.rb +0 -18
- data/lib/locales/ja.yml +0 -46
@@ -0,0 +1,194 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Hipster < Base
|
5
|
+
class << self
|
6
|
+
##
|
7
|
+
# Produces a random hipster word.
|
8
|
+
#
|
9
|
+
# @return [String]
|
10
|
+
#
|
11
|
+
# @example
|
12
|
+
# Faker::Hipster.word #=> "irony"
|
13
|
+
#
|
14
|
+
# @faker.version 1.6.0
|
15
|
+
def word
|
16
|
+
random_word = sample(translate('faker.hipster.words'))
|
17
|
+
random_word =~ /\s/ ? word : random_word
|
18
|
+
end
|
19
|
+
|
20
|
+
# rubocop:disable Metrics/ParameterLists
|
21
|
+
|
22
|
+
##
|
23
|
+
# Produces a random hipster word.
|
24
|
+
#
|
25
|
+
# @param number [Integer] Specifies the number of words returned
|
26
|
+
# @param supplemental [Boolean] Specifies if the words are supplemental
|
27
|
+
# @param spaces_allowed [Boolean] Specifies if the words may contain spaces
|
28
|
+
# @return [Array<String>]
|
29
|
+
#
|
30
|
+
# @example
|
31
|
+
# Faker::Hipster.words #=> ["pug", "pitchfork", "chia"]
|
32
|
+
# Faker::Hipster.words(number: 4) #=> ["ugh", "cardigan", "poutine", "stumptown"]
|
33
|
+
# Faker::Hipster.words(number: 4, supplemental: true) #=> ["iste", "seitan", "normcore", "provident"]
|
34
|
+
# Faker::Hipster.words(number: 4, supplemental: true, spaces_allowed: true) #=> ["qui", "magni", "craft beer", "est"]
|
35
|
+
#
|
36
|
+
# @faker.version 1.6.0
|
37
|
+
def words(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, legacy_spaces_allowed = NOT_GIVEN, number: 3, supplemental: false, spaces_allowed: false)
|
38
|
+
warn_for_deprecated_arguments do |keywords|
|
39
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
40
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
41
|
+
keywords << :spaces_allowed if legacy_spaces_allowed != NOT_GIVEN
|
42
|
+
end
|
43
|
+
|
44
|
+
resolved_num = resolve(number)
|
45
|
+
word_list = (
|
46
|
+
translate('faker.hipster.words') +
|
47
|
+
(supplemental ? translate('faker.lorem.words') : [])
|
48
|
+
)
|
49
|
+
word_list *= ((resolved_num / word_list.length) + 1)
|
50
|
+
|
51
|
+
return shuffle(word_list)[0, resolved_num] if spaces_allowed
|
52
|
+
|
53
|
+
words = shuffle(word_list)[0, resolved_num]
|
54
|
+
words.each_with_index { |w, i| words[i] = word if w =~ /\s/ }
|
55
|
+
end
|
56
|
+
|
57
|
+
##
|
58
|
+
# Produces a random hipster sentence.
|
59
|
+
#
|
60
|
+
# @param word_count [Integer] Specifies the number of words in the sentence
|
61
|
+
# @param supplemental [Boolean] Specifies if the words are supplemental
|
62
|
+
# @param random_words_to_add [Integer] Specifies the number of random words to add
|
63
|
+
# @param open_compounds_allowed [Boolean] Specifies if the generated sentence can contain words having additional spaces
|
64
|
+
# @return [String]
|
65
|
+
#
|
66
|
+
# @example
|
67
|
+
# Faker::Hipster.sentence #=> "Park iphone leggings put a bird on it."
|
68
|
+
# Faker::Hipster.sentence(word_count: 3) #=> "Pour-over swag godard."
|
69
|
+
# Faker::Hipster.sentence(word_count: 3, supplemental: true) #=> "Beard laboriosam sequi celiac."
|
70
|
+
# Faker::Hipster.sentence(word_count: 3, supplemental: false, random_words_to_add: 4) #=> "Bitters retro mustache aesthetic biodiesel 8-bit."
|
71
|
+
# Faker::Hipster.sentence(word_count: 3, supplemental: true, random_words_to_add: 4) #=> "Occaecati deleniti messenger bag meh crucifix autem."
|
72
|
+
# Faker::Hipster.sentence(word_count: 3, supplemental: true, random_words_to_add: 0, open_compounds_allowed: true) #=> "Kale chips nihil eos."
|
73
|
+
# Faker::Hipster.sentence(word_count: 3, supplemental: true, random_words_to_add: 0, open_compounds_allowed: false) #=> "Dreamcatcher umami fixie."
|
74
|
+
#
|
75
|
+
# @faker.version 1.6.0
|
76
|
+
def sentence(legacy_word_count = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, legacy_random_words_to_add = NOT_GIVEN, word_count: 4, supplemental: false, random_words_to_add: 6, open_compounds_allowed: true)
|
77
|
+
warn_for_deprecated_arguments do |keywords|
|
78
|
+
keywords << :word_count if legacy_word_count != NOT_GIVEN
|
79
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
80
|
+
keywords << :random_words_to_add if legacy_random_words_to_add != NOT_GIVEN
|
81
|
+
end
|
82
|
+
|
83
|
+
"#{words(number: word_count + rand(random_words_to_add.to_i).to_i, supplemental: supplemental, spaces_allowed: open_compounds_allowed).join(' ').capitalize}."
|
84
|
+
end
|
85
|
+
# rubocop:enable Metrics/ParameterLists
|
86
|
+
|
87
|
+
##
|
88
|
+
# Produces random hipster sentences.
|
89
|
+
#
|
90
|
+
# @param number [Integer] Specifies the number of sentences returned
|
91
|
+
# @param supplemental [Boolean] Specifies if the words are supplemental
|
92
|
+
# @return [Array<String>]
|
93
|
+
#
|
94
|
+
# @example
|
95
|
+
# Faker::Hipster.sentences #=> ["Godard pitchfork vinegar chillwave everyday 90's whatever.", "Pour-over artisan distillery street waistcoat.", "Salvia yr leggings franzen blue bottle."]
|
96
|
+
# Faker::Hipster.sentences(number: 1) #=> ["Before they sold out pinterest venmo umami try-hard ugh hoodie artisan."]
|
97
|
+
# Faker::Hipster.sentences(number: 1, supplemental: true) #=> ["Et sustainable optio aesthetic et."]
|
98
|
+
#
|
99
|
+
# @faker.version 1.6.0
|
100
|
+
def sentences(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 3, supplemental: false)
|
101
|
+
warn_for_deprecated_arguments do |keywords|
|
102
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
103
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
104
|
+
end
|
105
|
+
|
106
|
+
[].tap do |sentences|
|
107
|
+
1.upto(resolve(number)) do
|
108
|
+
sentences << sentence(word_count: 3, supplemental: supplemental)
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
# rubocop:disable Metrics/ParameterLists
|
114
|
+
|
115
|
+
##
|
116
|
+
# Produces a random hipster paragraph.
|
117
|
+
#
|
118
|
+
# @param sentence_count [Integer] Specifies the number of sentences in the paragraph
|
119
|
+
# @param supplemental [Boolean] Specifies if the words are supplemental
|
120
|
+
# @param random_sentences_to_add [Boolean] Specifies the number of random sentences to add
|
121
|
+
# @return [String]
|
122
|
+
#
|
123
|
+
# @example
|
124
|
+
# Faker::Hipster.paragraph #=> "Migas fingerstache pbr&b tofu. Polaroid distillery typewriter echo tofu actually. Slow-carb fanny pack pickled direct trade scenester mlkshk plaid. Banjo venmo chambray cold-pressed typewriter. Fap skateboard intelligentsia."
|
125
|
+
# Faker::Hipster.paragraph(sentence_count: 2) #=> "Yolo tilde farm-to-table hashtag. Lomo kitsch disrupt forage +1."
|
126
|
+
# Faker::Hipster.paragraph(sentence_count: 2, supplemental: true) #=> "Typewriter iste ut viral kombucha voluptatem. Sint voluptates saepe. Direct trade irony chia excepturi yuccie. Biodiesel esse listicle et quam suscipit."
|
127
|
+
# Faker::Hipster.paragraph(sentence_count: 2, supplemental: false, random_sentences_to_add: 4) #=> "Selvage vhs chartreuse narwhal vinegar. Authentic vinyl truffaut carry vhs pop-up. Hammock everyday iphone locavore thundercats bitters vegan goth. Fashion axe banh mi shoreditch whatever artisan."
|
128
|
+
# Faker::Hipster.paragraph(sentence_count: 2, supplemental: true, random_sentences_to_add: 4) #=> "Deep v gluten-free unde waistcoat aperiam migas voluptas dolorum. Aut drinking illo sustainable sapiente. Direct trade fanny pack kale chips ennui semiotics."
|
129
|
+
#
|
130
|
+
# @faker.version 1.6.0
|
131
|
+
def paragraph(legacy_sentence_count = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, legacy_random_sentences_to_add = NOT_GIVEN, sentence_count: 3, supplemental: false, random_sentences_to_add: 3)
|
132
|
+
warn_for_deprecated_arguments do |keywords|
|
133
|
+
keywords << :sentence_count if legacy_sentence_count != NOT_GIVEN
|
134
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
135
|
+
keywords << :random_sentences_to_add if legacy_random_sentences_to_add != NOT_GIVEN
|
136
|
+
end
|
137
|
+
|
138
|
+
sentences(number: resolve(sentence_count) + rand(random_sentences_to_add.to_i).to_i, supplemental: supplemental).join(' ')
|
139
|
+
end
|
140
|
+
# rubocop:enable Metrics/ParameterLists
|
141
|
+
|
142
|
+
##
|
143
|
+
# Produces random hipster paragraphs.
|
144
|
+
#
|
145
|
+
# @param number [Integer] Specifies the number of paragraphs
|
146
|
+
# @param supplemental [Boolean] Specifies if the words are supplemental
|
147
|
+
# @return [Array<String>]
|
148
|
+
#
|
149
|
+
# @example
|
150
|
+
# Faker::Hipster.paragraphs #=> ["Tilde microdosing blog cliche meggings. Intelligentsia five dollar toast forage yuccie. Master kitsch knausgaard. Try-hard everyday trust fund mumblecore.", "Normcore viral pickled. Listicle humblebrag swag tote bag. Taxidermy street hammock neutra butcher cred kale chips. Blog portland humblebrag trust fund irony.", "Single-origin coffee fixie cleanse tofu xoxo. Post-ironic tote bag ramps gluten-free locavore mumblecore hammock. Umami loko twee. Ugh kitsch before they sold out."]
|
151
|
+
# Faker::Hipster.paragraphs(number: 1) #=> ["Skateboard cronut synth +1 fashion axe. Pop-up polaroid skateboard asymmetrical. Ennui fingerstache shoreditch before they sold out. Tattooed pitchfork ramps. Photo booth yr messenger bag raw denim bespoke locavore lomo synth."]
|
152
|
+
# Faker::Hipster.paragraphs(number: 1, supplemental: true) #=> ["Quae direct trade pbr&b quo taxidermy autem loko. Umami quas ratione migas cardigan sriracha minima. Tenetur perspiciatis pickled sed eum doloribus truffaut. Excepturi dreamcatcher meditation."]
|
153
|
+
#
|
154
|
+
# @faker.version 1.6.0
|
155
|
+
def paragraphs(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 3, supplemental: false)
|
156
|
+
warn_for_deprecated_arguments do |keywords|
|
157
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
158
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
159
|
+
end
|
160
|
+
|
161
|
+
[].tap do |paragraphs|
|
162
|
+
1.upto(resolve(number)) do
|
163
|
+
paragraphs << paragraph(sentence_count: 3, supplemental: supplemental)
|
164
|
+
end
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
168
|
+
##
|
169
|
+
# Produces a random hipster paragraph by characters.
|
170
|
+
#
|
171
|
+
# @param characters [Integer] Specifies the number of characters in the paragraph
|
172
|
+
# @param supplemental [Boolean] Specifies if the words are supplemental
|
173
|
+
# @return [String]
|
174
|
+
#
|
175
|
+
# @example
|
176
|
+
# Faker::Hipster.paragraph_by_chars #=> "Truffaut stumptown trust fund 8-bit messenger bag portland. Meh kombucha selvage swag biodiesel. Lomo kinfolk jean shorts asymmetrical diy. Wayfarers portland twee stumptown. Wes anderson biodiesel retro 90's pabst. Diy echo 90's mixtape semiotics. Cornho."
|
177
|
+
# Faker::Hipster.paragraph_by_chars(characters: 256, supplemental: false) #=> "Hella kogi blog narwhal sartorial selfies mustache schlitz. Bespoke normcore kitsch cred hella fixie. Park aesthetic fixie migas twee. Cliche mustache brunch tumblr fixie godard. Drinking pop-up synth hoodie dreamcatcher typewriter. Kitsch biodiesel green."
|
178
|
+
#
|
179
|
+
# @faker.version 1.6.0
|
180
|
+
def paragraph_by_chars(legacy_characters = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, characters: 256, supplemental: false)
|
181
|
+
warn_for_deprecated_arguments do |keywords|
|
182
|
+
keywords << :characters if legacy_characters != NOT_GIVEN
|
183
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
184
|
+
end
|
185
|
+
|
186
|
+
paragraph = paragraph(sentence_count: 3, supplemental: supplemental)
|
187
|
+
|
188
|
+
paragraph += " #{paragraph(sentence_count: 3, supplemental: supplemental)}" while paragraph.length < characters
|
189
|
+
|
190
|
+
"#{paragraph[0...characters - 1]}."
|
191
|
+
end
|
192
|
+
end
|
193
|
+
end
|
194
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Hobby < Base
|
5
|
+
flexible :hobby
|
6
|
+
|
7
|
+
class << self
|
8
|
+
##
|
9
|
+
# Retrieves a typical hobby activity.
|
10
|
+
#
|
11
|
+
# @return [String]
|
12
|
+
#
|
13
|
+
# @example
|
14
|
+
# Faker::Hobby.activity #=> "Cooking"
|
15
|
+
#
|
16
|
+
# @faker.version next
|
17
|
+
def activity
|
18
|
+
fetch('hobby.activity')
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class House < Base
|
5
|
+
class << self
|
6
|
+
##
|
7
|
+
# Produces the name of a piece of furniture.
|
8
|
+
#
|
9
|
+
# @return [String]
|
10
|
+
#
|
11
|
+
# @example
|
12
|
+
# Faker::House.furniture #=> "chair"
|
13
|
+
#
|
14
|
+
# @faker.version 1.9.2
|
15
|
+
def furniture
|
16
|
+
fetch('house.furniture')
|
17
|
+
end
|
18
|
+
|
19
|
+
##
|
20
|
+
# Produces the name of a room in a house.
|
21
|
+
#
|
22
|
+
# @return [String]
|
23
|
+
#
|
24
|
+
# @example
|
25
|
+
# Faker::House.room #=> "kitchen"
|
26
|
+
#
|
27
|
+
# @faker.version 1.9.2
|
28
|
+
def room
|
29
|
+
fetch('house.rooms')
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,418 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class IDNumber < Base
|
5
|
+
CHECKS = 'TRWAGMYFPDXBNJZSQVHLCKE'
|
6
|
+
INVALID_SSN = [
|
7
|
+
/0{3}-\d{2}-\d{4}/,
|
8
|
+
/\d{3}-0{2}-\d{4}/,
|
9
|
+
/\d{3}-\d{2}-0{4}/,
|
10
|
+
/666-\d{2}-\d{4}/,
|
11
|
+
/9\d{2}-\d{2}-\d{4}/
|
12
|
+
].freeze
|
13
|
+
ZA_RACE_DIGIT = '8'
|
14
|
+
ZA_CITIZENSHIP_DIGITS = %w[0 1].freeze
|
15
|
+
BRAZILIAN_ID_FORMAT = /(\d{1,2})(\d{3})(\d{3})([\dX])/.freeze
|
16
|
+
BRAZILIAN_ID_FROM = 10_000_000
|
17
|
+
BRAZILIAN_ID_TO = 99_999_999
|
18
|
+
|
19
|
+
CHILEAN_MODULO = 11
|
20
|
+
|
21
|
+
class << self
|
22
|
+
##
|
23
|
+
# Produces a random valid US Social Security number.
|
24
|
+
#
|
25
|
+
# @return [String]
|
26
|
+
#
|
27
|
+
# @example
|
28
|
+
# Faker::IDNumber.valid #=> "552-56-3593"
|
29
|
+
#
|
30
|
+
# @faker.version 1.6.0
|
31
|
+
def valid
|
32
|
+
_translate('valid')
|
33
|
+
end
|
34
|
+
|
35
|
+
##
|
36
|
+
# Produces a random invalid US Social Security number.
|
37
|
+
#
|
38
|
+
# @return [String]
|
39
|
+
#
|
40
|
+
# @example
|
41
|
+
# Faker::IDNumber.invalid #=> "311-72-0000"
|
42
|
+
#
|
43
|
+
# @faker.version 1.6.0
|
44
|
+
def invalid
|
45
|
+
_translate('invalid')
|
46
|
+
end
|
47
|
+
|
48
|
+
def ssn_valid
|
49
|
+
ssn = regexify(/[0-8]\d{2}-\d{2}-\d{4}/)
|
50
|
+
# We could still have all 0s in one segment or another
|
51
|
+
INVALID_SSN.any? { |regex| regex =~ ssn } ? ssn_valid : ssn
|
52
|
+
end
|
53
|
+
|
54
|
+
##
|
55
|
+
# Produces a random Spanish citizen identifier (DNI).
|
56
|
+
#
|
57
|
+
# @return [String]
|
58
|
+
#
|
59
|
+
# @example
|
60
|
+
# Faker::IDNumber.spanish_citizen_number #=> "53290236-H"
|
61
|
+
#
|
62
|
+
# @faker.version 1.9.0
|
63
|
+
def spanish_citizen_number
|
64
|
+
num = Faker::Number.number(digits: 8)
|
65
|
+
mod = num.to_i % 23
|
66
|
+
check = CHECKS[mod]
|
67
|
+
"#{num}-#{check}"
|
68
|
+
end
|
69
|
+
|
70
|
+
##
|
71
|
+
# Produces a random Spanish foreign born citizen identifier (NIE).
|
72
|
+
#
|
73
|
+
# @return [String]
|
74
|
+
#
|
75
|
+
# @example
|
76
|
+
# Faker::IDNumber.spanish_foreign_citizen_number #=> "Z-1600870-Y"
|
77
|
+
#
|
78
|
+
# @faker.version 1.9.0
|
79
|
+
def spanish_foreign_citizen_number
|
80
|
+
code = 'XYZ'
|
81
|
+
digits = Faker::Number.number(digits: 7)
|
82
|
+
prefix = code[rand(code.length)]
|
83
|
+
prefix_val = 'XYZ'.index(prefix).to_s
|
84
|
+
mod = "#{prefix_val}#{digits}".to_i % 23
|
85
|
+
check = CHECKS[mod]
|
86
|
+
"#{prefix}-#{digits}-#{check}"
|
87
|
+
end
|
88
|
+
|
89
|
+
##
|
90
|
+
# Produces a random valid South African ID Number.
|
91
|
+
#
|
92
|
+
# @return [String]
|
93
|
+
#
|
94
|
+
# @example
|
95
|
+
# Faker::IDNumber.south_african_id_number #=> "8105128870184"
|
96
|
+
# Faker::IDNumber.valid_south_african_id_number #=> "8105128870184"
|
97
|
+
#
|
98
|
+
# @faker.version 1.9.2
|
99
|
+
def valid_south_african_id_number
|
100
|
+
id_number = [
|
101
|
+
Faker::Date.birthday.strftime('%y%m%d'),
|
102
|
+
Faker::Number.number(digits: 4),
|
103
|
+
ZA_CITIZENSHIP_DIGITS.sample(random: Faker::Config.random),
|
104
|
+
ZA_RACE_DIGIT
|
105
|
+
].join
|
106
|
+
|
107
|
+
[id_number, south_african_id_checksum_digit(id_number)].join
|
108
|
+
end
|
109
|
+
|
110
|
+
alias south_african_id_number valid_south_african_id_number
|
111
|
+
|
112
|
+
##
|
113
|
+
# Produces a random invalid South African ID Number.
|
114
|
+
#
|
115
|
+
# @return [String]
|
116
|
+
#
|
117
|
+
# @example
|
118
|
+
# Faker::IDNumber.invalid_south_african_id_number #=> "1642972065088"
|
119
|
+
#
|
120
|
+
# @faker.version 1.9.2
|
121
|
+
def invalid_south_african_id_number
|
122
|
+
invalid_date_of_birth = [
|
123
|
+
Faker::Number.number(digits: 2),
|
124
|
+
Faker::Number.between(from: 13, to: 99),
|
125
|
+
Faker::Number.between(from: 32, to: 99)
|
126
|
+
].map(&:to_s).join
|
127
|
+
|
128
|
+
id_number = [
|
129
|
+
invalid_date_of_birth,
|
130
|
+
Faker::Number.number(digits: 4),
|
131
|
+
ZA_CITIZENSHIP_DIGITS.sample(random: Faker::Config.random),
|
132
|
+
ZA_RACE_DIGIT
|
133
|
+
].join
|
134
|
+
|
135
|
+
[id_number, south_african_id_checksum_digit(id_number)].join
|
136
|
+
end
|
137
|
+
|
138
|
+
##
|
139
|
+
# Produces a random Brazilian Citizen Number (CPF).
|
140
|
+
#
|
141
|
+
# @param formatted [Boolean] Specifies if the number is formatted with dividers.
|
142
|
+
# @return [String]
|
143
|
+
#
|
144
|
+
# @example
|
145
|
+
# Faker::IDNumber.brazilian_citizen_number #=> "53540542221"
|
146
|
+
# Faker::IDNumber.brazilian_citizen_number(formatted: true) #=> "535.405.422-21"
|
147
|
+
#
|
148
|
+
# @faker.version 1.9.2
|
149
|
+
def brazilian_citizen_number(legacy_formatted = NOT_GIVEN, formatted: false)
|
150
|
+
warn_for_deprecated_arguments do |keywords|
|
151
|
+
keywords << :formatted if legacy_formatted != NOT_GIVEN
|
152
|
+
end
|
153
|
+
|
154
|
+
digits = Faker::Number.leading_zero_number(digits: 9) until digits&.match(/(\d)((?!\1)\d)+/)
|
155
|
+
first_digit = brazilian_citizen_number_checksum_digit(digits)
|
156
|
+
second_digit = brazilian_citizen_number_checksum_digit(digits + first_digit)
|
157
|
+
number = [digits, first_digit, second_digit].join
|
158
|
+
formatted ? format('%s.%s.%s-%s', *number.scan(/\d{2,3}/).flatten) : number
|
159
|
+
end
|
160
|
+
|
161
|
+
alias brazilian_cpf brazilian_citizen_number
|
162
|
+
|
163
|
+
##
|
164
|
+
# Produces a random Brazilian ID Number (RG).
|
165
|
+
#
|
166
|
+
# @param formatted [Boolean] Specifies if the number is formatted with dividers.
|
167
|
+
# @return [String]
|
168
|
+
#
|
169
|
+
# @example
|
170
|
+
# Faker::IDNumber.brazilian_id #=> "493054029"
|
171
|
+
# Faker::IDNumber.brazilian_id(formatted: true) #=> "49.305.402-9"
|
172
|
+
#
|
173
|
+
# @faker.version 2.1.2
|
174
|
+
def brazilian_id(legacy_formatted = NOT_GIVEN, formatted: false)
|
175
|
+
warn_for_deprecated_arguments do |keywords|
|
176
|
+
keywords << :formatted if legacy_formatted != NOT_GIVEN
|
177
|
+
end
|
178
|
+
|
179
|
+
digits = Faker::Number.between(to: BRAZILIAN_ID_FROM, from: BRAZILIAN_ID_TO).to_s
|
180
|
+
check_digit = brazilian_id_checksum_digit(digits)
|
181
|
+
number = [digits, check_digit].join
|
182
|
+
formatted ? format('%s.%s.%s-%s', *number.scan(BRAZILIAN_ID_FORMAT).flatten) : number
|
183
|
+
end
|
184
|
+
|
185
|
+
alias brazilian_rg brazilian_id
|
186
|
+
|
187
|
+
##
|
188
|
+
# Produces a random Chilean ID (Rut with 8 digits).
|
189
|
+
#
|
190
|
+
# @return [String]
|
191
|
+
#
|
192
|
+
# @example
|
193
|
+
# Faker::IDNumber.chilean_id #=> "15620613-K"
|
194
|
+
#
|
195
|
+
# @faker.version 2.1.2
|
196
|
+
def chilean_id
|
197
|
+
digits = Faker::Number.number(digits: 8)
|
198
|
+
verification_code = chilean_verification_code(digits)
|
199
|
+
|
200
|
+
"#{digits}-#{verification_code}"
|
201
|
+
end
|
202
|
+
|
203
|
+
##
|
204
|
+
# Produces a random Croatian ID number (OIB).
|
205
|
+
#
|
206
|
+
# @param international [Boolean] Specifies whether to add international prefix.
|
207
|
+
# @return [String]
|
208
|
+
#
|
209
|
+
# @example
|
210
|
+
# Faker::IDNumber.croatian_id #=> "88467617508"
|
211
|
+
# Faker::IDNumber.croatian_id(international: true) #=> "HR88467617508"
|
212
|
+
#
|
213
|
+
# @faker.version next
|
214
|
+
def croatian_id(international: false)
|
215
|
+
prefix = international ? 'HR' : ''
|
216
|
+
digits = Faker::Number.number(digits: 10).to_s
|
217
|
+
checksum_digit = croatian_id_checksum_digit(digits)
|
218
|
+
|
219
|
+
"#{prefix}#{digits}#{checksum_digit}"
|
220
|
+
end
|
221
|
+
|
222
|
+
##
|
223
|
+
# Produces a random Danish ID Number (CPR number).
|
224
|
+
# CPR number is 10 digits. Digit 1-6 is the birthdate (format "DDMMYY").
|
225
|
+
# Digit 7-10 is a sequence number.
|
226
|
+
# Digit 7 digit is a control digit that determines the century of birth.
|
227
|
+
# Digit 10 reveals the gender: # even is female, odd is male.
|
228
|
+
#
|
229
|
+
# @param formatted [Boolean] Specifies if the number is formatted with dividers.
|
230
|
+
# @param birthday [Date] Specifies the birthday for the id number.
|
231
|
+
# @param gender [Symbol] Specifies the gender for the id number. Must be one :male or :female if present.
|
232
|
+
# @return [String]
|
233
|
+
#
|
234
|
+
# @example
|
235
|
+
# Faker::IDNumber.danish_id_number #=> "0503909980"
|
236
|
+
# Faker::IDNumber.danish_id_number(formatted: true) #=> "050390-9980"
|
237
|
+
# Faker::IDNumber.danish_id_number(birthday: Date.new(1990, 3, 5)) #=> "0503909980"
|
238
|
+
# Faker::IDNumber.danish_id_number(gender: :female) #=> "0503909980"
|
239
|
+
#
|
240
|
+
# @faker.version next
|
241
|
+
def danish_id_number(formatted: false, birthday: Faker::Date.birthday, gender: nil)
|
242
|
+
valid_control_digits = danish_control_digits(birthday)
|
243
|
+
control_digit = sample(valid_control_digits)
|
244
|
+
digits = (0..9).to_a
|
245
|
+
gender = gender.to_sym if gender.respond_to?(:to_sym)
|
246
|
+
gender_digit = case gender
|
247
|
+
when nil
|
248
|
+
sample(digits)
|
249
|
+
when :male
|
250
|
+
sample(digits.select(&:odd?))
|
251
|
+
when :female
|
252
|
+
sample(digits.select(&:even?))
|
253
|
+
else
|
254
|
+
raise ArgumentError, "Invalid gender #{gender}. Must be one of male, female, or be omitted."
|
255
|
+
end
|
256
|
+
|
257
|
+
[
|
258
|
+
birthday.strftime('%d%m%y'),
|
259
|
+
formatted ? '-' : '',
|
260
|
+
control_digit,
|
261
|
+
Faker::Number.number(digits: 2),
|
262
|
+
gender_digit
|
263
|
+
].join
|
264
|
+
end
|
265
|
+
|
266
|
+
##
|
267
|
+
# Produces a random French social security number (INSEE number).
|
268
|
+
#
|
269
|
+
# @return [String]
|
270
|
+
#
|
271
|
+
# @example
|
272
|
+
# Faker::IDNumber.french_insee_number #=> "53290236-H"
|
273
|
+
#
|
274
|
+
# @faker.version next
|
275
|
+
def french_insee_number
|
276
|
+
num = [
|
277
|
+
[1, 2].sample(random: Faker::Config.random), # gender
|
278
|
+
Faker::Number.between(from: 0, to: 99).to_s.rjust(2, '0'), # year of birth
|
279
|
+
Faker::Number.between(from: 1, to: 12).to_s.rjust(2, '0'), # month of birth
|
280
|
+
Faker::Number.number(digits: 5), # place of birth
|
281
|
+
Faker::Number.number(digits: 3) # order number
|
282
|
+
].join
|
283
|
+
mod = num.to_i % 97
|
284
|
+
check = (97 - mod).to_s.rjust(2, '0')
|
285
|
+
"#{num}#{check}"
|
286
|
+
end
|
287
|
+
|
288
|
+
private
|
289
|
+
|
290
|
+
def croatian_id_checksum_digit(digits)
|
291
|
+
control_sum = 10
|
292
|
+
|
293
|
+
digits.chars.map(&:to_i).each do |digit|
|
294
|
+
control_sum += digit
|
295
|
+
control_sum %= 10
|
296
|
+
control_sum = 10 if control_sum.zero?
|
297
|
+
control_sum *= 2
|
298
|
+
control_sum %= 11
|
299
|
+
end
|
300
|
+
|
301
|
+
control_sum = 11 - control_sum
|
302
|
+
control_sum % 10
|
303
|
+
end
|
304
|
+
|
305
|
+
def chilean_verification_code(digits)
|
306
|
+
# First digit is multiplied by 3, second by 2, and so on
|
307
|
+
multiplication_rule = [3, 2, 7, 6, 5, 4, 3, 2]
|
308
|
+
digits_splitted = digits.to_s.chars.map(&:to_i)
|
309
|
+
|
310
|
+
sum = digits_splitted.map.with_index { |digit, index| digit * multiplication_rule[index] }.reduce(:+)
|
311
|
+
|
312
|
+
modulo = sum.modulo(CHILEAN_MODULO)
|
313
|
+
difference = CHILEAN_MODULO - modulo
|
314
|
+
|
315
|
+
case difference
|
316
|
+
when 0..9
|
317
|
+
difference
|
318
|
+
when 10
|
319
|
+
'K'
|
320
|
+
when 11
|
321
|
+
0
|
322
|
+
end
|
323
|
+
end
|
324
|
+
|
325
|
+
def south_african_id_checksum_digit(id_number)
|
326
|
+
value_parts = id_number.chars
|
327
|
+
even_digits = value_parts
|
328
|
+
.select
|
329
|
+
.with_index { |_, i| (i + 1).even? }
|
330
|
+
odd_digits_without_last_character = value_parts[0...-1]
|
331
|
+
.select
|
332
|
+
.with_index { |_, i| (i + 1).odd? }
|
333
|
+
|
334
|
+
sum_of_odd_digits = odd_digits_without_last_character.map(&:to_i).reduce(:+)
|
335
|
+
even_digits_times_two = (even_digits.join.to_i * 2).to_s
|
336
|
+
sum_of_even_digits = even_digits_times_two.chars.map(&:to_i).reduce(:+)
|
337
|
+
|
338
|
+
total_sum = sum_of_odd_digits + sum_of_even_digits
|
339
|
+
|
340
|
+
((10 - (total_sum % 10)) % 10).to_s
|
341
|
+
end
|
342
|
+
|
343
|
+
def brazilian_citizen_number_checksum_digit(digits)
|
344
|
+
checksum = brazilian_document_checksum(digits)
|
345
|
+
brazilian_document_digit(checksum)
|
346
|
+
end
|
347
|
+
|
348
|
+
def brazilian_id_checksum_digit(digits)
|
349
|
+
checksum = brazilian_document_checksum(digits)
|
350
|
+
brazilian_document_digit(checksum, id: true)
|
351
|
+
end
|
352
|
+
|
353
|
+
def brazilian_document_checksum(digits)
|
354
|
+
digits.chars.each_with_index.inject(0) do |acc, (digit, i)|
|
355
|
+
acc + digit.to_i * (digits.size + 1 - i)
|
356
|
+
end * 10
|
357
|
+
end
|
358
|
+
|
359
|
+
def brazilian_document_digit(checksum, id: false)
|
360
|
+
remainder = checksum % 11
|
361
|
+
id ? brazilian_id_digit(remainder) : brazilian_citizen_number_digit(remainder)
|
362
|
+
end
|
363
|
+
|
364
|
+
def brazilian_citizen_number_digit(remainder)
|
365
|
+
remainder == 10 ? '0' : remainder.to_s
|
366
|
+
end
|
367
|
+
|
368
|
+
def brazilian_id_digit(remainder)
|
369
|
+
subtraction = 11 - remainder.to_i
|
370
|
+
digits = { 10 => 'X', 11 => '0' }
|
371
|
+
digits.include?(subtraction) ? digits[subtraction] : subtraction.to_s
|
372
|
+
end
|
373
|
+
|
374
|
+
def danish_control_digits(birthday)
|
375
|
+
year = birthday.year
|
376
|
+
century = year.to_s.slice(0, 2).to_i
|
377
|
+
year_digits = year.to_s.slice(2, 2).to_i
|
378
|
+
error_message = "Invalid birthday: #{birthday}. Danish CPR numbers are only distributed to persons born between 1858 and 2057."
|
379
|
+
|
380
|
+
case century
|
381
|
+
when 18
|
382
|
+
# If 5, 6, 7 or 8 and the year numbers are greater than or equal to 58, you were born in 18XX.
|
383
|
+
case year_digits
|
384
|
+
when 58..99
|
385
|
+
[5, 6, 7, 8]
|
386
|
+
else
|
387
|
+
raise ArgumentError, error_message
|
388
|
+
end
|
389
|
+
when 19
|
390
|
+
# If 0, 1, 2 or 3, you are always born in 19XX.
|
391
|
+
# If 4 or 9, you are born in 19XX if the year digits are greater than 36.
|
392
|
+
|
393
|
+
case year_digits
|
394
|
+
when 0..36
|
395
|
+
[0, 1, 2, 3]
|
396
|
+
else # 37..99
|
397
|
+
[0, 1, 2, 3, 4, 9]
|
398
|
+
end
|
399
|
+
else
|
400
|
+
# If 4, 5, 6, 7, 8 or 9 and the year digits are less than or equal to 36, you were born in 20XX.
|
401
|
+
# 5, 6, 7 and 8 are not distributed to persons, with year digits from and including 37 to and including 57.
|
402
|
+
case year_digits
|
403
|
+
when 0..36
|
404
|
+
[4, 5, 6, 7, 8, 9]
|
405
|
+
when 37..57
|
406
|
+
[5, 6, 7, 8]
|
407
|
+
else
|
408
|
+
raise ArgumentError, error_message
|
409
|
+
end
|
410
|
+
end
|
411
|
+
end
|
412
|
+
|
413
|
+
def _translate(key)
|
414
|
+
parse("id_number.#{key}")
|
415
|
+
end
|
416
|
+
end
|
417
|
+
end
|
418
|
+
end
|