faker 1.1.2 → 3.1.1
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 +7 -0
- data/CHANGELOG.md +2383 -0
- data/History.md +176 -0
- data/License.txt +2 -2
- data/README.md +487 -47
- 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 +124 -0
- data/lib/faker/books/lovecraft.rb +249 -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 +348 -0
- data/lib/faker/default/adjective.rb +35 -0
- data/lib/faker/default/alphanumeric.rb +67 -0
- data/lib/faker/default/ancient.rb +59 -0
- data/lib/faker/default/app.rb +68 -0
- data/lib/faker/default/appliance.rb +33 -0
- data/lib/faker/default/artist.rb +20 -0
- data/lib/faker/default/avatar.rb +49 -0
- data/lib/faker/default/bank.rb +199 -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 +23 -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 +92 -0
- data/lib/faker/default/chuck_norris.rb +25 -0
- data/lib/faker/default/code.rb +269 -0
- data/lib/faker/default/coffee.rb +82 -0
- data/lib/faker/default/coin.rb +33 -0
- data/lib/faker/default/color.rb +150 -0
- data/lib/faker/default/commerce.rb +157 -0
- data/lib/faker/default/company.rb +571 -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 +82 -0
- data/lib/faker/default/currency.rb +46 -0
- data/lib/faker/default/date.rb +153 -0
- data/lib/faker/default/dc_comics.rb +70 -0
- data/lib/faker/default/demographic.rb +94 -0
- data/lib/faker/default/dessert.rb +48 -0
- data/lib/faker/default/device.rb +85 -0
- data/lib/faker/default/driving_licence.rb +121 -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 +81 -0
- data/lib/faker/default/fillmurray.rb +38 -0
- data/lib/faker/default/finance.rb +112 -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 +155 -0
- data/lib/faker/default/hobby.rb +22 -0
- data/lib/faker/default/house.rb +33 -0
- data/lib/faker/default/id_number.rb +410 -0
- data/lib/faker/default/industry_segments.rb +61 -0
- data/lib/faker/default/internet.rb +582 -0
- data/lib/faker/default/internet_http.rb +48 -0
- data/lib/faker/default/invoice.rb +123 -0
- data/lib/faker/default/job.rb +61 -0
- data/lib/faker/default/json.rb +125 -0
- data/lib/faker/default/kpop.rb +85 -0
- data/lib/faker/default/lorem.rb +250 -0
- data/lib/faker/default/lorem_flickr.rb +110 -0
- data/lib/faker/default/markdown.rb +170 -0
- data/lib/faker/default/marketing.rb +22 -0
- data/lib/faker/default/measurement.rb +175 -0
- data/lib/faker/default/military.rb +98 -0
- data/lib/faker/default/mountain.rb +33 -0
- data/lib/faker/default/name.rb +152 -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 +53 -0
- data/lib/faker/default/number.rb +244 -0
- data/lib/faker/default/omniauth.rb +471 -0
- data/lib/faker/default/phone_number.rb +133 -0
- data/lib/faker/default/placeholdit.rb +52 -0
- data/lib/faker/default/programming_language.rb +33 -0
- data/lib/faker/default/relationship.rb +87 -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 +63 -0
- data/lib/faker/default/south_africa.rb +141 -0
- data/lib/faker/default/space.rb +191 -0
- data/lib/faker/default/string.rb +59 -0
- data/lib/faker/default/stripe.rb +126 -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 +149 -0
- data/lib/faker/default/twitter.rb +207 -0
- data/lib/faker/default/types.rb +160 -0
- data/lib/faker/default/university.rb +75 -0
- data/lib/faker/default/vehicle.rb +320 -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 +77 -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 +89 -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/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 +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/cowboy_bebop.rb +61 -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/hackers.rb +48 -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 +269 -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 +116 -0
- data/lib/faker/sports/volleyball.rb +74 -0
- data/lib/faker/travel/airport.rb +47 -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/spongebob.rb +50 -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 +170 -58
- data/lib/helpers/base58.rb +22 -0
- data/lib/helpers/char.rb +61 -0
- data/lib/helpers/unique_generator.rb +60 -0
- data/lib/locales/README.md +40 -0
- data/lib/locales/ar.yml +106 -0
- data/lib/locales/bg.yml +44 -0
- data/lib/locales/ca-CAT.yml +24 -0
- data/lib/locales/ca.yml +23 -0
- data/lib/locales/da-DK.yml +72 -0
- data/lib/locales/de-AT.yml +57 -0
- data/lib/locales/de-CH.yml +1713 -0
- data/lib/locales/de.yml +131 -9
- data/lib/locales/ee.yml +61 -0
- data/lib/locales/en/README.md +13 -0
- data/lib/locales/en/address.yml +586 -0
- data/lib/locales/en/adjective.yml +179 -0
- data/lib/locales/en/airport.yml +381 -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/cowboy_bebop.yml +163 -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 +96 -0
- 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/family_guy.yml +7 -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/hackers.yml +53 -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 +155 -0
- 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 +79 -0
- 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 +197 -0
- 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 +2652 -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/rick_and_morty.yml +6 -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 +51 -0
- data/lib/locales/en/south_park.yml +5 -0
- data/lib/locales/en/space.yml +17 -0
- data/lib/locales/en/spongebob.yml +489 -0
- data/lib/locales/en/sport.yml +130 -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/tarkov.yml +593 -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 +67 -0
- data/lib/locales/{en-bork.yml → en-BORK.yml} +1 -1
- data/lib/locales/en-CA.yml +39 -0
- data/lib/locales/{en-gb.yml → en-GB.yml} +3 -3
- data/lib/locales/{en-ind.yml → en-IND.yml} +10 -4
- data/lib/locales/en-MS.yml +48 -0
- data/lib/locales/en-NEP.yml +52 -0
- data/lib/locales/en-NG.yml +77 -0
- data/lib/locales/en-NZ.yml +165 -0
- data/lib/locales/en-PAK.yml +19 -0
- data/lib/locales/en-SG.yml +36 -0
- data/lib/locales/en-TH.yml +360 -0
- data/lib/locales/en-UG.yml +128 -0
- data/lib/locales/en-US.yml +128 -0
- data/lib/locales/en-ZA.yml +147 -0
- data/lib/locales/en-au-ocker.yml +34 -0
- data/lib/locales/en.yml +6 -67
- data/lib/locales/es-AR.yml +4600 -0
- data/lib/locales/es-MX.yml +104 -0
- data/lib/locales/es.yml +149 -0
- data/lib/locales/fa.yml +12 -0
- data/lib/locales/fi-FI.yml +36 -0
- 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 +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 +106 -0
- data/lib/locales/fr-CH.yml +77 -0
- data/lib/locales/fr.yml +1 -51
- data/lib/locales/he.yml +27 -0
- data/lib/locales/hy.yml +411 -0
- data/lib/locales/id.yml +26 -0
- data/lib/locales/it.yml +71 -0
- 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 +132 -0
- data/lib/locales/lt.yml +34 -0
- data/lib/locales/lv.yml +55 -0
- data/lib/locales/mi-NZ.yml +281 -0
- data/lib/locales/{no-nb.yml → nb-NO.yml} +20 -8
- data/lib/locales/nl.yml +45 -30
- data/lib/locales/no.yml +7 -0
- data/lib/locales/pl.yml +20 -10
- data/lib/locales/pt-BR.yml +725 -0
- data/lib/locales/{pt-br.yml → pt.yml} +25 -15
- data/lib/locales/ru.yml +117 -0
- data/lib/locales/sk.yml +80 -0
- data/lib/locales/sv.yml +81 -0
- data/lib/locales/th.yml +380 -0
- data/lib/locales/tr.yml +40 -0
- data/lib/locales/uk.yml +88 -0
- data/lib/locales/vi.yml +8 -3
- data/lib/locales/zh-CN.yml +56 -0
- data/lib/locales/zh-TW.yml +29 -0
- metadata +731 -97
- data/History.txt +0 -103
- data/lib/extensions/array.rb +0 -7
- data/lib/extensions/symbol.rb +0 -9
- data/lib/faker/address.rb +0 -49
- data/lib/faker/company.rb +0 -26
- data/lib/faker/internet.rb +0 -71
- data/lib/faker/lorem.rb +0 -59
- data/lib/faker/name.rb +0 -22
- data/lib/faker/phone_number.rb +0 -17
- data/lib/locales/de-ch.yml +0 -19
- data/lib/locales/en-au.yml +0 -22
- data/lib/locales/en-ca.yml +0 -14
- data/lib/locales/en-us.yml +0 -6
- data/test/test_faker.rb +0 -29
- data/test/test_faker_city.rb +0 -45
- data/test/test_faker_internet.rb +0 -56
- data/test/test_faker_lorem.rb +0 -69
- data/test/test_faker_name.rb +0 -20
- data/test/test_faker_street.rb +0 -44
- data/test/test_flexible.rb +0 -56
- data/test/test_helper.rb +0 -5
- data/test/test_locale.rb +0 -41
@@ -0,0 +1,123 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Invoice < Base
|
5
|
+
flexible :invoice
|
6
|
+
|
7
|
+
class << self
|
8
|
+
##
|
9
|
+
# Produces a random amount between values with 2 decimals
|
10
|
+
#
|
11
|
+
# @param from [Integer] Specifies lower limit.
|
12
|
+
# @param to [Integer] Specifies upper limit.
|
13
|
+
# @return [Integer]
|
14
|
+
#
|
15
|
+
# @example
|
16
|
+
# Faker::Finance.amount_between #=> 0
|
17
|
+
# Faker::Finance.amount_between(0, 10) #=> 4.33
|
18
|
+
#
|
19
|
+
# @faker.version 1.9.0
|
20
|
+
def amount_between(from: 0, to: 0)
|
21
|
+
Faker::Base.rand_in_range(from, to).round(2)
|
22
|
+
end
|
23
|
+
|
24
|
+
##
|
25
|
+
# Produces a random valid reference accoring to the International bank slip reference https://en.wikipedia.org/wiki/Creditor_Reference
|
26
|
+
#
|
27
|
+
# @param ref [String] Specifies reference base.
|
28
|
+
# @return [String]
|
29
|
+
#
|
30
|
+
# @example
|
31
|
+
# Faker::Invoice.creditor_reference #=> "RF34118592570724925498"
|
32
|
+
#
|
33
|
+
# @faker.version 1.9.0
|
34
|
+
def creditor_reference(ref: '')
|
35
|
+
ref = reference if ref.empty?
|
36
|
+
|
37
|
+
"RF#{iban_checksum('RF', ref)}#{ref}"
|
38
|
+
end
|
39
|
+
|
40
|
+
##
|
41
|
+
# Produces a random valid reference.
|
42
|
+
#
|
43
|
+
# @param ref [String] Specifies reference base.
|
44
|
+
# @return [String]
|
45
|
+
#
|
46
|
+
# @example
|
47
|
+
# Faker::Invoice.reference #=> "45656646957845"
|
48
|
+
#
|
49
|
+
# @faker.version 1.9.0
|
50
|
+
def reference(ref: '')
|
51
|
+
pattern = fetch('invoice.reference.pattern')
|
52
|
+
|
53
|
+
ref = Base.regexify(/#{pattern}/) if ref.empty?
|
54
|
+
|
55
|
+
# If reference contains reserved '#' characters we need to calculate check_digits as well
|
56
|
+
check_digit_match = ref.match(/#+/)
|
57
|
+
if check_digit_match
|
58
|
+
# Get the method for selected language
|
59
|
+
check_digit_method = fetch('invoice.reference.check_digit_method')
|
60
|
+
|
61
|
+
# Calculate the check digit with matching method name
|
62
|
+
# Trim all '#' from the reference before calculating that
|
63
|
+
check_digit = send(check_digit_method, ref.tr('#', ''))
|
64
|
+
|
65
|
+
# Make sure that our check digit is as long as all of the '###' we found
|
66
|
+
check_digit = check_digit.to_s.rjust(check_digit_match[0].length, '0')
|
67
|
+
|
68
|
+
# Replace all of the
|
69
|
+
ref = ref.sub(check_digit_match[0], check_digit)
|
70
|
+
end
|
71
|
+
|
72
|
+
ref
|
73
|
+
end
|
74
|
+
|
75
|
+
private
|
76
|
+
|
77
|
+
# Calculates the mandatory checksum in 3rd and 4th characters in IBAN format
|
78
|
+
# source: https://en.wikipedia.org/wiki/International_Bank_Account_Number#Validating_the_IBAN
|
79
|
+
def iban_checksum(country_code, account)
|
80
|
+
# Converts letters to numbers according the iban rules, A=10..Z=35
|
81
|
+
account_to_number = "#{account}#{country_code}00".upcase.chars.map do |d|
|
82
|
+
d =~ /[A-Z]/ ? (d.ord - 55).to_s : d
|
83
|
+
end.join.to_i
|
84
|
+
|
85
|
+
# This is answer to (iban_to_num + checksum) % 97 == 1
|
86
|
+
checksum = (1 - account_to_number) % 97
|
87
|
+
|
88
|
+
# Use leftpad to make the size always to 2
|
89
|
+
checksum.to_s.rjust(2, '0')
|
90
|
+
end
|
91
|
+
|
92
|
+
# 731 Method
|
93
|
+
# Source: https://wiki.xmldation.com/support/fk/finnish_reference_number
|
94
|
+
def method_731(base)
|
95
|
+
weighted_sum = calculate_weighted_sum(base, [7, 3, 1])
|
96
|
+
mod10_remainder(weighted_sum)
|
97
|
+
end
|
98
|
+
|
99
|
+
# Norsk Modulus 10 - KIDMOD10
|
100
|
+
def kidmod10(base)
|
101
|
+
weighted_sum = calculate_weighted_sum(base, [1, 2])
|
102
|
+
mod10_remainder(weighted_sum)
|
103
|
+
end
|
104
|
+
|
105
|
+
# Calculates weighted sum
|
106
|
+
#
|
107
|
+
# For example with 12345678, [1,2]
|
108
|
+
# Ref.num. 1 2 3 4 5 6 7 8
|
109
|
+
# Multipl. 1 2 1 2 1 2 1 2
|
110
|
+
# Total 1+ 4+ 3+ 8+ 5+1+2+ 7+1+6 = 38
|
111
|
+
def calculate_weighted_sum(base, weight_factors)
|
112
|
+
base.to_s.reverse.each_char.with_index.map do |digit, index|
|
113
|
+
digit.to_i * weight_factors.at(index % weight_factors.length)
|
114
|
+
end.reduce(:+) # reduce(:+) = sum() but with better ruby version support
|
115
|
+
end
|
116
|
+
|
117
|
+
# MOD-10 - remainder
|
118
|
+
def mod10_remainder(number)
|
119
|
+
-number % 10
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Job < Base
|
5
|
+
flexible :job
|
6
|
+
|
7
|
+
class << self
|
8
|
+
##
|
9
|
+
# Produces a random job title.
|
10
|
+
#
|
11
|
+
# @return [String]
|
12
|
+
#
|
13
|
+
# @example
|
14
|
+
# Faker::Job.title #=> "Construction Manager"
|
15
|
+
#
|
16
|
+
# @faker.version 1.7.0
|
17
|
+
def title
|
18
|
+
parse('job.title')
|
19
|
+
end
|
20
|
+
|
21
|
+
##
|
22
|
+
# Produces a random job position.
|
23
|
+
#
|
24
|
+
# @return [String]
|
25
|
+
#
|
26
|
+
# @example
|
27
|
+
# Faker::Job.position #=> "Strategist"
|
28
|
+
#
|
29
|
+
# @faker.version 1.8.7
|
30
|
+
def position
|
31
|
+
fetch('job.position')
|
32
|
+
end
|
33
|
+
|
34
|
+
##
|
35
|
+
# Produces a random job field.
|
36
|
+
#
|
37
|
+
# @return [String]
|
38
|
+
#
|
39
|
+
# @example
|
40
|
+
# Faker::Job.field #=> "Banking"
|
41
|
+
#
|
42
|
+
# @faker.version 1.7.0
|
43
|
+
def field
|
44
|
+
fetch('job.field')
|
45
|
+
end
|
46
|
+
|
47
|
+
##
|
48
|
+
# Produces a random job skill.
|
49
|
+
#
|
50
|
+
# @return [String]
|
51
|
+
#
|
52
|
+
# @example
|
53
|
+
# Faker::Job.key_skill #=> "Leadership"
|
54
|
+
#
|
55
|
+
# @faker.version 1.7.0
|
56
|
+
def key_skill
|
57
|
+
fetch('job.key_skills')
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,125 @@
|
|
1
|
+
module Faker
|
2
|
+
class Json < Base
|
3
|
+
require 'json'
|
4
|
+
|
5
|
+
class << self
|
6
|
+
##
|
7
|
+
# Produces a random simple JSON formatted string.
|
8
|
+
#
|
9
|
+
# @param width [Integer] Specifies the number of key-value pairs.
|
10
|
+
# @param options [Hash] Specifies a Faker gem class to use for keys and for values, respectably. options_hash = {key: Class.method, value: Class.method}
|
11
|
+
# @return [Hash{String => String}]
|
12
|
+
#
|
13
|
+
# @example
|
14
|
+
# Faker::Json.shallow_json(width: 3, options: { key: 'RockBand.name', value: 'Seinfeld.quote' }) # =>
|
15
|
+
# {"Parliament Funkadelic":"They're real, and they're spectacular.",
|
16
|
+
# "Fleetwood Mac":"I'm not a lesbian. I hate men, but I'm not a lesbian.",
|
17
|
+
# "The Roots":"It became very clear to me sitting out there today that every decision
|
18
|
+
# I've made in my entire life has been wrong. My life is the complete opposite of everything
|
19
|
+
# I want it to be. Every instinct I have, in every aspect of life, be it something to wear,
|
20
|
+
# something to eat - it's all been wrong."}
|
21
|
+
#
|
22
|
+
# @faker.version 1.9.2
|
23
|
+
def shallow_json(width: 3, options: { key: 'Name.first_name', value: 'Name.first_name' })
|
24
|
+
options[:key] = "Faker::#{options[:key]}"
|
25
|
+
options[:value] = "Faker::#{options[:value]}"
|
26
|
+
|
27
|
+
hash = build_shallow_hash(width, options)
|
28
|
+
JSON.generate(hash)
|
29
|
+
end
|
30
|
+
|
31
|
+
##
|
32
|
+
# Produces a random nested JSON formatted string that can take JSON as an additional argument.
|
33
|
+
#
|
34
|
+
# @param json [Hash{String => String}] Specifies a Json.shallow_json and uses its keys as keys of the nested JSON.
|
35
|
+
# @param width [Integer] Specifies the number of nested key-value pairs.
|
36
|
+
# @param options [Hash] Specifies a Faker gem class to use for nested keys and for values, respectably. options_hash = {key: Class.method, value: Class.method}
|
37
|
+
# @return [Hash{String => String}]
|
38
|
+
#
|
39
|
+
# @example
|
40
|
+
# json = Faker::Json.shallow_json(width: 3, options: { key: 'Name.first_name', value: 'Name.last_name' })
|
41
|
+
# puts json # =>
|
42
|
+
# {"Alisha":"Olson","Everardo":"DuBuque","Bridgette":"Turner"}
|
43
|
+
#
|
44
|
+
# json2 = Faker::Json.add_depth_to_json(json: json, width: 2, options: { key: 'Name.first_name', value: 'Name.last_name' })
|
45
|
+
# puts json2 # =>
|
46
|
+
# {"Alisha":{"Daisy":"Trantow","Oda":"Haag"},
|
47
|
+
# "Everardo":{"Javier":"Marvin","Eliseo":"Schuppe"},
|
48
|
+
# "Bridgette":{"Jorge":"Kertzmann","Lelah":"MacGyver"}}
|
49
|
+
#
|
50
|
+
# json3 = Faker::Json.add_depth_to_json(json: json2, width: 4, options: { key: 'Name.first_name', value: 'Name.last_name' })
|
51
|
+
# puts json3 # =>
|
52
|
+
# {"Alisha":
|
53
|
+
# {"Daisy":
|
54
|
+
# {"Bulah":"Wunsch","Cristian":"Champlin","Lester":"Bartoletti","Greg":"Jacobson"},
|
55
|
+
# "Oda":
|
56
|
+
# {"Salvatore":"Kuhlman","Aubree":"Okuneva","Larry":"Schmitt","Velva":"Gibson"}},
|
57
|
+
# "Everardo":
|
58
|
+
# {"Javier":
|
59
|
+
# {"Eduardo":"Orn","Laila":"Kub","Thad":"Legros","Dion":"Wilderman"},
|
60
|
+
# "Eliseo":
|
61
|
+
# {"Olin":"Hilpert","Marisa":"Greenfelder","Karlee":"Schmitt","Judd":"Larkin"}},
|
62
|
+
# "Bridgette":
|
63
|
+
# {"Jorge":
|
64
|
+
# {"Eloy":"Pfeffer","Kody":"Hansen","Paxton":"Lubowitz","Abe":"Lesch"},
|
65
|
+
# "Lelah":
|
66
|
+
# {"Rick":"Wiza","Bonita":"Bayer","Gardner":"Auer","Felicity":"Abbott"}}}
|
67
|
+
#
|
68
|
+
# @faker.version 1.9.2
|
69
|
+
def add_depth_to_json(json: shallow_json, width: 3, options: { key: 'Name.first_name', value: 'Name.first_name' })
|
70
|
+
options[:key] = "Faker::#{options[:key]}"
|
71
|
+
options[:value] = "Faker::#{options[:value]}"
|
72
|
+
|
73
|
+
hash = JSON.parse(json)
|
74
|
+
hash.each do |key, _|
|
75
|
+
add_hash_to_bottom(hash, [key], width, options)
|
76
|
+
end
|
77
|
+
JSON.generate(hash)
|
78
|
+
end
|
79
|
+
|
80
|
+
private
|
81
|
+
|
82
|
+
def build_shallow_hash(width, options)
|
83
|
+
key = options[:key]
|
84
|
+
value = options[:value]
|
85
|
+
|
86
|
+
hash = {}
|
87
|
+
width.times do
|
88
|
+
hash[eval(key)] = eval(value)
|
89
|
+
end
|
90
|
+
hash
|
91
|
+
end
|
92
|
+
|
93
|
+
def add_hash_to_bottom(hash, key_array, width, options)
|
94
|
+
key_string = build_keys_from_array(key_array)
|
95
|
+
if eval("hash#{key_string}").is_a?(::Hash)
|
96
|
+
eval("hash#{key_string}").each do |key, _|
|
97
|
+
key_array << key
|
98
|
+
add_hash_to_bottom(hash, key_array, width, options)
|
99
|
+
end
|
100
|
+
else
|
101
|
+
add_hash(key_array, hash, width, options)
|
102
|
+
key_array.pop
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
def add_hash(key_array, hash, width, options)
|
107
|
+
string_to_eval = 'hash'
|
108
|
+
key_array.length.times do |index|
|
109
|
+
string_to_eval << "['#{key_array[index]}']"
|
110
|
+
end
|
111
|
+
string_to_eval << " = #{build_shallow_hash(width, options)}"
|
112
|
+
eval(string_to_eval)
|
113
|
+
hash
|
114
|
+
end
|
115
|
+
|
116
|
+
def build_keys_from_array(key_array)
|
117
|
+
key_string = ''
|
118
|
+
key_array.each do |value|
|
119
|
+
key_string << "['#{value}']"
|
120
|
+
end
|
121
|
+
key_string
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Kpop < Base
|
5
|
+
class << self
|
6
|
+
##
|
7
|
+
# Produces the name of a 1990's 'OG' K-Pop group.
|
8
|
+
#
|
9
|
+
# @return [String]
|
10
|
+
#
|
11
|
+
# @example
|
12
|
+
# Faker::Kpop.i_groups #=> "Seo Taiji and Boys"
|
13
|
+
#
|
14
|
+
# @faker.version 1.8.5
|
15
|
+
def i_groups
|
16
|
+
fetch('kpop.i_groups')
|
17
|
+
end
|
18
|
+
|
19
|
+
##
|
20
|
+
# Produces the name of a 2000's K-Pop group.
|
21
|
+
#
|
22
|
+
# @return [String]
|
23
|
+
#
|
24
|
+
# @example
|
25
|
+
# Faker::Kpop.ii_groups #=> "Girls' Generation"
|
26
|
+
#
|
27
|
+
# @faker.version 1.8.5
|
28
|
+
def ii_groups
|
29
|
+
fetch('kpop.ii_groups')
|
30
|
+
end
|
31
|
+
|
32
|
+
##
|
33
|
+
# Produces the name of a 2010's K-Pop group.
|
34
|
+
#
|
35
|
+
# @return [String]
|
36
|
+
#
|
37
|
+
# @example
|
38
|
+
# Faker::Kpop.iii_groups #=> "Trouble Maker"
|
39
|
+
#
|
40
|
+
# @faker.version 1.8.5
|
41
|
+
def iii_groups
|
42
|
+
fetch('kpop.iii_groups')
|
43
|
+
end
|
44
|
+
|
45
|
+
##
|
46
|
+
# Produces the name of a K-Pop girl group.
|
47
|
+
#
|
48
|
+
# @return [String]
|
49
|
+
#
|
50
|
+
# @example
|
51
|
+
# Faker::Kpop.girl_groups #=> "2NE1"
|
52
|
+
#
|
53
|
+
# @faker.version 1.8.5
|
54
|
+
def girl_groups
|
55
|
+
fetch('kpop.girl_groups')
|
56
|
+
end
|
57
|
+
|
58
|
+
##
|
59
|
+
# Produces the name of a K-Pop boy band.
|
60
|
+
#
|
61
|
+
# @return [String]
|
62
|
+
#
|
63
|
+
# @example
|
64
|
+
# Faker::Kpop.boy_bands #=> "Exo"
|
65
|
+
#
|
66
|
+
# @faker.version 1.8.5
|
67
|
+
def boy_bands
|
68
|
+
fetch('kpop.boy_bands')
|
69
|
+
end
|
70
|
+
|
71
|
+
##
|
72
|
+
# Produces the name of a solo K-Pop artist.
|
73
|
+
#
|
74
|
+
# @return [String]
|
75
|
+
#
|
76
|
+
# @example
|
77
|
+
# Faker::Kpop.solo #=> "T.O.P"
|
78
|
+
#
|
79
|
+
# @faker.version 1.8.5
|
80
|
+
def solo
|
81
|
+
fetch('kpop.solo')
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -0,0 +1,250 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
# Based on Perl's Text::Lorem
|
5
|
+
class Lorem < Base
|
6
|
+
class << self
|
7
|
+
##
|
8
|
+
# Returs the random word
|
9
|
+
# @return [String]
|
10
|
+
#
|
11
|
+
# @example
|
12
|
+
# Faker::Lorem.word #=> "soluto"
|
13
|
+
#
|
14
|
+
# @faker.version 2.1.3
|
15
|
+
def word
|
16
|
+
sample(translate('faker.lorem.words'))
|
17
|
+
end
|
18
|
+
|
19
|
+
##
|
20
|
+
# Generates random 3 words
|
21
|
+
#
|
22
|
+
# @param number [Integer] Number of words to be generated
|
23
|
+
# @param supplemental [Boolean] Whether to attach supplemental words at the end, default is false
|
24
|
+
#
|
25
|
+
# @return [Array] Array for words
|
26
|
+
#
|
27
|
+
# @example
|
28
|
+
# Faker::Lorem.words #=> ["hic", "quia", "nihil"]
|
29
|
+
# Faker::Lorem.words(number: 4) #=> ["est", "temporibus", "et", "quaerat"]
|
30
|
+
# Faker::Lorem.words(number: 4, supplemental: true) #=> ["nisi", "sit", "allatus", "consequatur"]
|
31
|
+
# Faker::Lorem.words(number: 4, supplemental: true, exclude_words: 'sit') #=> ["nisi", "allatus", "consequatur", "aut"]
|
32
|
+
#
|
33
|
+
# @faker.version 2.1.3
|
34
|
+
def words(number: 3, supplemental: false, exclude_words: nil)
|
35
|
+
resolved_num = resolve(number)
|
36
|
+
word_list = (
|
37
|
+
translate('faker.lorem.words') +
|
38
|
+
(supplemental ? translate('faker.lorem.supplemental') : [])
|
39
|
+
)
|
40
|
+
if exclude_words
|
41
|
+
exclude_words = exclude_words.split(', ') if exclude_words.instance_of?(::String)
|
42
|
+
word_list -= exclude_words
|
43
|
+
end
|
44
|
+
word_list *= ((resolved_num / word_list.length) + 1)
|
45
|
+
shuffle(word_list)[0, resolved_num]
|
46
|
+
end
|
47
|
+
|
48
|
+
##
|
49
|
+
# Generates single character
|
50
|
+
#
|
51
|
+
# @return [String]
|
52
|
+
#
|
53
|
+
# @example
|
54
|
+
# Faker::Lorem.character #=> "e"
|
55
|
+
#
|
56
|
+
# @faker.version 2.1.3
|
57
|
+
def character
|
58
|
+
sample(Types::CHARACTERS)
|
59
|
+
end
|
60
|
+
|
61
|
+
##
|
62
|
+
# Produces a random string of alphanumeric characters
|
63
|
+
#
|
64
|
+
# @param number [Integer] The number of characters to generate
|
65
|
+
# @param min_alpha [Integer] The minimum number of alphabetic to add to the string
|
66
|
+
# @param min_numeric [Integer] The minimum number of numbers to add to the string
|
67
|
+
#
|
68
|
+
# @return [String]
|
69
|
+
#
|
70
|
+
# @example
|
71
|
+
# Faker::Lorem.characters #=> "uw1ep04lhs0c4d931n1jmrspprf5w..."
|
72
|
+
# Faker::Lorem.characters(number: 10) #=> "ang9cbhoa8"
|
73
|
+
# Faker::Lorem.characters(number: 10, min_alpha: 4) #=> "ang9cbhoa8"
|
74
|
+
# Faker::Lorem.characters(number: 10, min_alpha: 4, min_numeric: 1) #=> "ang9cbhoa8"
|
75
|
+
#
|
76
|
+
# @faker.version 2.1.3
|
77
|
+
def characters(number: 255, min_alpha: 0, min_numeric: 0)
|
78
|
+
Alphanumeric.alphanumeric(number: number, min_alpha: min_alpha, min_numeric: min_numeric)
|
79
|
+
end
|
80
|
+
|
81
|
+
##
|
82
|
+
# Generates the emoji
|
83
|
+
#
|
84
|
+
# @return [String]
|
85
|
+
#
|
86
|
+
# @example
|
87
|
+
# Faker::Lorem.multibyte #=> "😀"
|
88
|
+
# Faker::Lorem.multibyte #=> "❤"
|
89
|
+
#
|
90
|
+
# @faker.version 2.1.3
|
91
|
+
def multibyte
|
92
|
+
sample(translate('faker.lorem.multibyte')).pack('C*').force_encoding('utf-8')
|
93
|
+
end
|
94
|
+
|
95
|
+
##
|
96
|
+
# Generates sentence
|
97
|
+
#
|
98
|
+
# @param word_count [Integer] How many words should be there in a sentence, default to 4
|
99
|
+
# @param supplemental [Boolean] Add supplemental words, default to false
|
100
|
+
# @param random_words_to_add [Integer] Add any random words, default to 0
|
101
|
+
#
|
102
|
+
# @return [String]
|
103
|
+
#
|
104
|
+
# @example
|
105
|
+
# Faker::Lorem.sentence #=> "Magnam qui aut quidem."
|
106
|
+
# Faker::Lorem.sentence(word_count: 5) #=> "Voluptas rerum aut aliquam velit."
|
107
|
+
# Faker::Lorem.sentence(word_count: 5, supplemental: true) #=> "Aut viscus curtus votum iusto."
|
108
|
+
# Faker::Lorem.sentence(word_count: 5, supplemental: true, random_words_to_add:2) #=> "Crinis quo cruentus velit animi vomer."
|
109
|
+
#
|
110
|
+
# @faker.version 2.1.3
|
111
|
+
def sentence(word_count: 4, supplemental: false, random_words_to_add: 0, exclude_words: nil)
|
112
|
+
words(number: word_count + rand(random_words_to_add.to_i), supplemental: supplemental, exclude_words: exclude_words).join(locale_space).capitalize + locale_period
|
113
|
+
end
|
114
|
+
|
115
|
+
##
|
116
|
+
# Generates three sentences
|
117
|
+
#
|
118
|
+
# @param number [Integer] How many sentences to be generated, default to 3
|
119
|
+
# @param supplemental [Boolean] Should add supplemental words, defaults to false
|
120
|
+
#
|
121
|
+
# @return [Array] Returns array for sentences.
|
122
|
+
#
|
123
|
+
# @example
|
124
|
+
# Faker::Lorem.sentences #=> ["Possimus non tenetur.", "Nulla non excepturi.", "Quisquam rerum facilis."]
|
125
|
+
# Faker::Lorem.sentences(number: 2) #=> ["Nulla est natus.", "Perferendis autem cum."]
|
126
|
+
# Faker::Lorem.sentences(number: 2, supplemental: true) #=> ["Cito cena ad.", "Solvo animus allatus."]
|
127
|
+
#
|
128
|
+
# @faker.version 2.1.3
|
129
|
+
def sentences(number: 3, supplemental: false, exclude_words: nil)
|
130
|
+
1.upto(resolve(number)).collect { sentence(word_count: 3, supplemental: supplemental, exclude_words: exclude_words) }
|
131
|
+
end
|
132
|
+
|
133
|
+
##
|
134
|
+
# Generates three sentence paragraph
|
135
|
+
#
|
136
|
+
# @param sentence_count [Integer] Number of sentences in the paragraph
|
137
|
+
# @param supplemental [Boolean]
|
138
|
+
# @param random_sentences_to_add [Integer]
|
139
|
+
#
|
140
|
+
# @return [String]
|
141
|
+
#
|
142
|
+
# @example
|
143
|
+
# Faker::Lorem.paragraph
|
144
|
+
# #=> "Impedit et est. Aliquid deleniti necessitatibus. Et aspernatur minima."
|
145
|
+
# Faker::Lorem.paragraph(sentence_count: 2)
|
146
|
+
# #=> "Rerum fugit vitae. Et atque autem."
|
147
|
+
# Faker::Lorem.paragraph(sentence_count: 2, supplemental: true)
|
148
|
+
# #=> "Terreo coerceo utor. Vester sunt cogito."
|
149
|
+
# Faker::Lorem.paragraph(sentence_count: 2, supplemental: true, random_sentences_to_add: 2)
|
150
|
+
# #=> "Texo tantillus tamisium. Tribuo amissio tamisium. Facere aut canis."
|
151
|
+
#
|
152
|
+
# @faker.version 2.1.3
|
153
|
+
def paragraph(sentence_count: 3, supplemental: false, random_sentences_to_add: 0, exclude_words: nil)
|
154
|
+
sentences(number: resolve(sentence_count) + rand(random_sentences_to_add.to_i), supplemental: supplemental, exclude_words: exclude_words).join(locale_space)
|
155
|
+
end
|
156
|
+
|
157
|
+
##
|
158
|
+
# Generates three paragraphs
|
159
|
+
#
|
160
|
+
# @param number [Integer]
|
161
|
+
# @param supplemental [Boolean]
|
162
|
+
#
|
163
|
+
# @return [Array]
|
164
|
+
#
|
165
|
+
# @example
|
166
|
+
# Faker::Lorem.paragraphs
|
167
|
+
# Faker::Lorem.paragraphs(number:2)
|
168
|
+
# Faker::Lorem.paragraphs(number:2, supplemental: true)
|
169
|
+
#
|
170
|
+
# @faker.version 2.1.3
|
171
|
+
def paragraphs(number: 3, supplemental: false, exclude_words: nil)
|
172
|
+
1.upto(resolve(number)).collect { paragraph(sentence_count: 3, supplemental: supplemental, exclude_words: exclude_words) }
|
173
|
+
end
|
174
|
+
|
175
|
+
##
|
176
|
+
# Generates paragraph with 256 characters
|
177
|
+
#
|
178
|
+
# @param number [Integer]
|
179
|
+
# @param supplemental [Boolean]
|
180
|
+
#
|
181
|
+
# @return [String]
|
182
|
+
#
|
183
|
+
# @example
|
184
|
+
# Faker::Lorem.paragraph_by_chars
|
185
|
+
# Faker::Lorem.paragraph_by_chars(number: 20) #=> "Sit modi alias. Imp."
|
186
|
+
# Faker::Lorem.paragraph_by_chars(number: 20, supplemental: true) #=> "Certus aveho admove."
|
187
|
+
#
|
188
|
+
# @faker.version 2.1.3
|
189
|
+
def paragraph_by_chars(number: 256, supplemental: false)
|
190
|
+
paragraph = paragraph(sentence_count: 3, supplemental: supplemental)
|
191
|
+
|
192
|
+
paragraph += " #{paragraph(sentence_count: 3, supplemental: supplemental)}" while paragraph.length < number
|
193
|
+
|
194
|
+
"#{paragraph[0...number - 1]}."
|
195
|
+
end
|
196
|
+
|
197
|
+
##
|
198
|
+
# Returns the question with 4 words
|
199
|
+
#
|
200
|
+
# @param word_count [Integer]
|
201
|
+
# @param supplemental [Boolean]
|
202
|
+
# @param random_words_to_add [Integer]
|
203
|
+
#
|
204
|
+
# @return [String]
|
205
|
+
#
|
206
|
+
# @example
|
207
|
+
# Faker::Lorem.question #=> "Natus deleniti sequi laudantium?"
|
208
|
+
# Faker::Lorem.question(word_count: 2) #=> "Quo ut?"
|
209
|
+
# Faker::Lorem.question(word_count: 2, supplemental: true) #=> "Terga consequatur?"
|
210
|
+
# Faker::Lorem.question(word_count: 2, supplemental: true, random_words_to_add: 2) #=> "Depulso uter ut?"
|
211
|
+
#
|
212
|
+
# @faker.version 2.1.3
|
213
|
+
def question(word_count: 4, supplemental: false, random_words_to_add: 0, exclude_words: nil)
|
214
|
+
words(number: word_count + rand(random_words_to_add), supplemental: supplemental, exclude_words: exclude_words).join(' ').capitalize + locale_question_mark
|
215
|
+
end
|
216
|
+
|
217
|
+
##
|
218
|
+
# Generates array of three questions
|
219
|
+
#
|
220
|
+
# @param number [Integer]
|
221
|
+
# @param supplemental [Boolean]
|
222
|
+
#
|
223
|
+
# @return [Array]
|
224
|
+
#
|
225
|
+
# @example
|
226
|
+
# Faker::Lorem.questions #=> ["Amet culpa enim?", "Voluptatem deleniti numquam?", "Veniam non cum?"]
|
227
|
+
# Faker::Lorem.questions(number: 2) #=> ["Minus occaecati nobis?", "Veniam et alias?"]
|
228
|
+
# Faker::Lorem.questions(number: 2, supplemental: true) #=> ["Acceptus subito cetera?", "Aro sulum cubicularis?"]
|
229
|
+
#
|
230
|
+
# @faker.version 2.1.3
|
231
|
+
def questions(number: 3, supplemental: false, exclude_words: nil)
|
232
|
+
1.upto(resolve(number)).collect { question(word_count: 3, supplemental: supplemental, exclude_words: exclude_words) }
|
233
|
+
end
|
234
|
+
|
235
|
+
private
|
236
|
+
|
237
|
+
def locale_period
|
238
|
+
translate('faker.lorem.punctuation.period') || '.'
|
239
|
+
end
|
240
|
+
|
241
|
+
def locale_space
|
242
|
+
translate('faker.lorem.punctuation.space') || ' '
|
243
|
+
end
|
244
|
+
|
245
|
+
def locale_question_mark
|
246
|
+
translate('faker.lorem.punctuation.question_mark') || '?'
|
247
|
+
end
|
248
|
+
end
|
249
|
+
end
|
250
|
+
end
|