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,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Blockchain
|
5
|
+
class Ethereum < Base
|
6
|
+
class << self
|
7
|
+
##
|
8
|
+
# Produces a random Ethereum wallet address
|
9
|
+
#
|
10
|
+
# @return [String]
|
11
|
+
#
|
12
|
+
# @example
|
13
|
+
# Faker::Blockchain::Ethereum.address
|
14
|
+
# #=> "0xd392b0c0500700d02d27ab30805ec80ddd3320ff"
|
15
|
+
#
|
16
|
+
# @faker.version 1.9.1
|
17
|
+
def address
|
18
|
+
hex_alphabet = '0123456789abcdef'
|
19
|
+
var = +'0x'
|
20
|
+
40.times { var << sample(shuffle(hex_alphabet.chars)) }
|
21
|
+
var
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,135 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'openssl'
|
4
|
+
require 'securerandom'
|
5
|
+
|
6
|
+
module Faker
|
7
|
+
class Blockchain
|
8
|
+
class Tezos < Base
|
9
|
+
class << self
|
10
|
+
# @private
|
11
|
+
PREFIXES = {
|
12
|
+
tz1: [6, 161, 159],
|
13
|
+
KT1: [2, 90, 121],
|
14
|
+
edpk: [13, 15, 37, 217],
|
15
|
+
edsk: [13, 15, 58, 7],
|
16
|
+
edsig: [9, 245, 205, 134, 18],
|
17
|
+
B: [1, 52],
|
18
|
+
o: [5, 116]
|
19
|
+
}.freeze
|
20
|
+
|
21
|
+
##
|
22
|
+
# Produces a random Tezos account address
|
23
|
+
#
|
24
|
+
# @return [String]
|
25
|
+
#
|
26
|
+
# @example
|
27
|
+
# Faker::Blockchain::Tezos.account
|
28
|
+
# #=> "tz1eUsgK6aj752Fbxwk5sAoEFvSDnPjZ4qvk"
|
29
|
+
#
|
30
|
+
# @faker.version 1.9.2
|
31
|
+
def account
|
32
|
+
encode_tz(:tz1, 20)
|
33
|
+
end
|
34
|
+
|
35
|
+
##
|
36
|
+
# Produces a random Tezos contract
|
37
|
+
#
|
38
|
+
# @return [String]
|
39
|
+
#
|
40
|
+
# @example
|
41
|
+
# Faker::Blockchain::Tezos.contract
|
42
|
+
# #=> "KT1MroqeP15nnitB4CnNfkqHYa2NErhPPLWF"
|
43
|
+
#
|
44
|
+
# @faker.version 1.9.2
|
45
|
+
def contract
|
46
|
+
encode_tz(:KT1, 20)
|
47
|
+
end
|
48
|
+
|
49
|
+
##
|
50
|
+
# Produces a random Tezos operation
|
51
|
+
#
|
52
|
+
# @return [String]
|
53
|
+
#
|
54
|
+
# @example
|
55
|
+
# Faker::Blockchain::Tezos.operation
|
56
|
+
# #=> "onygWYXJX3xNstFLv9PcCrhQdCkENC795xwSinmTEc1jsDN4VDa"
|
57
|
+
#
|
58
|
+
# @faker.version 1.9.2
|
59
|
+
def operation
|
60
|
+
encode_tz(:o, 32)
|
61
|
+
end
|
62
|
+
|
63
|
+
##
|
64
|
+
# Produces a random Tezos block
|
65
|
+
#
|
66
|
+
# @return [String]
|
67
|
+
#
|
68
|
+
# @example
|
69
|
+
# Faker::Blockchain::Tezos.block
|
70
|
+
# #=> "BMbhs2rkY1dvAkAyRytvPsjFQ2RiPrBhYkxvWpY65dzkdSuw58a"
|
71
|
+
#
|
72
|
+
# @faker.version 1.9.4
|
73
|
+
def block
|
74
|
+
encode_tz(:B, 32)
|
75
|
+
end
|
76
|
+
|
77
|
+
##
|
78
|
+
# Produces a random Tezos signature
|
79
|
+
#
|
80
|
+
# @return [String]
|
81
|
+
#
|
82
|
+
# @example
|
83
|
+
# Faker::Blockchain::Tezos.signature
|
84
|
+
# #=> "edsigu165B7VFf3Dpw2QABVzEtCxJY2gsNBNcE3Ti7rRxtDUjqTFRpg67EdAQmY6YWPE5tKJDMnSTJDFu65gic8uLjbW2YwGvAZ"
|
85
|
+
#
|
86
|
+
# @faker.version 1.9.2
|
87
|
+
def signature
|
88
|
+
encode_tz(:edsig, 64)
|
89
|
+
end
|
90
|
+
|
91
|
+
##
|
92
|
+
# Produces a random Tezos public key
|
93
|
+
#
|
94
|
+
# @return [String]
|
95
|
+
#
|
96
|
+
# @example
|
97
|
+
# Faker::Blockchain::Tezos.public_key
|
98
|
+
# #=> "edpkuib9x8QXRc5nWwHUg7U1dXsVmaUrUNU5sX9pVEEvwbMVdfMCeq"
|
99
|
+
#
|
100
|
+
# @faker.version 2.15.2
|
101
|
+
def public_key
|
102
|
+
encode_tz(:edpk, 32)
|
103
|
+
end
|
104
|
+
|
105
|
+
##
|
106
|
+
# Produces a random Tezos public key
|
107
|
+
#
|
108
|
+
# @return [String]
|
109
|
+
#
|
110
|
+
# @example
|
111
|
+
# Faker::Blockchain::Tezos.secret_key
|
112
|
+
# #=> "edsk3HZCAGEGpzQPnQUwQeFY4ESanFhQCgLpKriQw8GHyhKCrjHawv"
|
113
|
+
#
|
114
|
+
# @faker.version 2.15.2
|
115
|
+
def secret_key
|
116
|
+
encode_tz(:edsk, 32)
|
117
|
+
end
|
118
|
+
|
119
|
+
protected
|
120
|
+
|
121
|
+
##
|
122
|
+
# @param prefix [Symbol]
|
123
|
+
# @param payload_size [Integer] The size of the payload
|
124
|
+
#
|
125
|
+
# @return [String]
|
126
|
+
def encode_tz(prefix, payload_size)
|
127
|
+
prefix = PREFIXES.fetch(prefix)
|
128
|
+
packed = prefix.map(&:chr).join + Faker::Config.random.bytes(payload_size)
|
129
|
+
checksum = OpenSSL::Digest::SHA256.digest(OpenSSL::Digest::SHA256.digest(packed))[0..3]
|
130
|
+
Faker::Base58.encode(packed + checksum)
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Book < Base
|
5
|
+
flexible :book
|
6
|
+
|
7
|
+
class << self
|
8
|
+
##
|
9
|
+
# Produces a random book title
|
10
|
+
#
|
11
|
+
# @return [String]
|
12
|
+
#
|
13
|
+
# @example
|
14
|
+
# Faker::Book.title #=> "The Odd Sister"
|
15
|
+
#
|
16
|
+
# @faker.version 1.9.3
|
17
|
+
def title
|
18
|
+
fetch('book.title')
|
19
|
+
end
|
20
|
+
|
21
|
+
##
|
22
|
+
# Produces a random book author
|
23
|
+
#
|
24
|
+
# @return [String]
|
25
|
+
#
|
26
|
+
# @example
|
27
|
+
# Faker::Book.author #=> "Alysha Olsen"
|
28
|
+
#
|
29
|
+
# @faker.version 1.9.3
|
30
|
+
def author
|
31
|
+
parse('book.author')
|
32
|
+
end
|
33
|
+
|
34
|
+
##
|
35
|
+
# Produces a random book publisher
|
36
|
+
#
|
37
|
+
# @return [String]
|
38
|
+
#
|
39
|
+
# @example
|
40
|
+
# Faker::Book.publisher #=> "Opus Reader"
|
41
|
+
#
|
42
|
+
# @faker.version 1.9.3
|
43
|
+
def publisher
|
44
|
+
fetch('book.publisher')
|
45
|
+
end
|
46
|
+
|
47
|
+
##
|
48
|
+
# Produces a random genre
|
49
|
+
#
|
50
|
+
# @return [String]
|
51
|
+
#
|
52
|
+
# @example
|
53
|
+
# Faker::Book.genre #=> "Mystery"
|
54
|
+
#
|
55
|
+
# @faker.version 1.9.3
|
56
|
+
def genre
|
57
|
+
fetch('book.genre')
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Books
|
5
|
+
class CultureSeries < Base
|
6
|
+
flexible :culture_series
|
7
|
+
|
8
|
+
class << self
|
9
|
+
##
|
10
|
+
# @return [String]
|
11
|
+
#
|
12
|
+
# @example
|
13
|
+
# Faker::Books::CultureSeries.book
|
14
|
+
# #=> "The Player of Games"
|
15
|
+
#
|
16
|
+
# @faker.version 1.9.3
|
17
|
+
def book
|
18
|
+
fetch('culture_series.books')
|
19
|
+
end
|
20
|
+
|
21
|
+
##
|
22
|
+
# @return [String]
|
23
|
+
#
|
24
|
+
# @example
|
25
|
+
# Faker::Books::CultureSeries.culture_ship
|
26
|
+
# #=> "Fate Amenable To Change"
|
27
|
+
#
|
28
|
+
# @faker.version 1.9.3
|
29
|
+
def culture_ship
|
30
|
+
fetch('culture_series.culture_ships')
|
31
|
+
end
|
32
|
+
|
33
|
+
##
|
34
|
+
# @return [String]
|
35
|
+
#
|
36
|
+
# @example
|
37
|
+
# Faker::Books::CultureSeries.culture_ship_class
|
38
|
+
# #=> "General Systems Vehicle"
|
39
|
+
#
|
40
|
+
# @faker.version 1.9.3
|
41
|
+
def culture_ship_class
|
42
|
+
fetch('culture_series.culture_ship_classes')
|
43
|
+
end
|
44
|
+
|
45
|
+
##
|
46
|
+
# @return [String]
|
47
|
+
#
|
48
|
+
# @example
|
49
|
+
# Faker::Books::CultureSeries.culture_ship_class_abv
|
50
|
+
# #=> "The Odd Sister"
|
51
|
+
#
|
52
|
+
# @faker.version 1.9.3
|
53
|
+
def culture_ship_class_abv
|
54
|
+
fetch('culture_series.culture_ship_class_abvs')
|
55
|
+
end
|
56
|
+
|
57
|
+
##
|
58
|
+
# @return [String]
|
59
|
+
#
|
60
|
+
# @example
|
61
|
+
# Faker::Books::CultureSeries.civ
|
62
|
+
# #=> "Culture"
|
63
|
+
#
|
64
|
+
# @faker.version 1.9.3
|
65
|
+
def civ
|
66
|
+
fetch('culture_series.civs')
|
67
|
+
end
|
68
|
+
|
69
|
+
##
|
70
|
+
# @return [String]
|
71
|
+
#
|
72
|
+
# @example
|
73
|
+
# Faker::Books::CultureSeries.planet
|
74
|
+
# #=> "Xinth"
|
75
|
+
#
|
76
|
+
# @faker.version 1.9.3
|
77
|
+
def planet
|
78
|
+
fetch('culture_series.planets')
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,124 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Books
|
5
|
+
##
|
6
|
+
# A Faker module beyond your dreams, test data beyond your imagination.
|
7
|
+
class Dune < Base
|
8
|
+
class << self
|
9
|
+
##
|
10
|
+
# Produces the name of a character from Dune
|
11
|
+
#
|
12
|
+
# @return [String]
|
13
|
+
#
|
14
|
+
# @example
|
15
|
+
# Faker::Books::Dune.character #=> "Leto Atreides"
|
16
|
+
#
|
17
|
+
# @faker.version 1.9.3
|
18
|
+
def character
|
19
|
+
fetch('dune.characters')
|
20
|
+
end
|
21
|
+
|
22
|
+
##
|
23
|
+
# @return [String]
|
24
|
+
#
|
25
|
+
# @example
|
26
|
+
# Faker::Books::Dune.title #=> "Duke"
|
27
|
+
#
|
28
|
+
# @faker.version 1.9.3
|
29
|
+
def title
|
30
|
+
fetch('dune.titles')
|
31
|
+
end
|
32
|
+
|
33
|
+
##
|
34
|
+
# Produces the name of a city from Dune
|
35
|
+
#
|
36
|
+
# @return [String]
|
37
|
+
#
|
38
|
+
# @example
|
39
|
+
# Faker::Books::Dune.city #=> "Arrakeen"
|
40
|
+
#
|
41
|
+
# @faker.version next
|
42
|
+
def city
|
43
|
+
fetch('dune.cities')
|
44
|
+
end
|
45
|
+
|
46
|
+
##
|
47
|
+
# Produces the name of a planet from Dune
|
48
|
+
#
|
49
|
+
# @return [String]
|
50
|
+
#
|
51
|
+
# @example
|
52
|
+
# Faker::Books::Dune.planet #=> "Caladan"
|
53
|
+
#
|
54
|
+
# @faker.version 1.9.3
|
55
|
+
def planet
|
56
|
+
fetch('dune.planets')
|
57
|
+
end
|
58
|
+
|
59
|
+
##
|
60
|
+
# Produces a quote from Dune
|
61
|
+
#
|
62
|
+
# @param character [String] The name of the character that the quote should be from
|
63
|
+
#
|
64
|
+
# @return [String]
|
65
|
+
#
|
66
|
+
# @example
|
67
|
+
# Faker::Books::Dune.quote
|
68
|
+
# #=> "A dead man, surely, no longer requires that water."
|
69
|
+
# @example
|
70
|
+
# Faker::Books::Dune.quote(character: "baron_harkonnen")
|
71
|
+
# #=> "He who controls the spice, controls the universe!"
|
72
|
+
#
|
73
|
+
# @faker.version 1.9.3
|
74
|
+
def quote(character: nil)
|
75
|
+
quoted_characters = translate('faker.dune.quotes').keys
|
76
|
+
|
77
|
+
if character.nil?
|
78
|
+
character = sample(quoted_characters).to_s
|
79
|
+
else
|
80
|
+
character = character.to_s.downcase
|
81
|
+
|
82
|
+
unless quoted_characters.include?(character.to_sym)
|
83
|
+
raise ArgumentError,
|
84
|
+
"Characters quoted can be left blank or #{quoted_characters.join(', ')}"
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
fetch("dune.quotes.#{character}")
|
89
|
+
end
|
90
|
+
|
91
|
+
##
|
92
|
+
# Produces a saying from Dune
|
93
|
+
#
|
94
|
+
# @param source [String]
|
95
|
+
#
|
96
|
+
# @return [String]
|
97
|
+
#
|
98
|
+
# @example
|
99
|
+
# Faker::Books::Dune.saying #=> "You do not beg the sun for mercy."
|
100
|
+
# @example
|
101
|
+
# Faker::Books::Dune.saying(source: "fremen")
|
102
|
+
# #=> "May thy knife chip and shatter."
|
103
|
+
#
|
104
|
+
# @faker.version 1.9.3
|
105
|
+
def saying(source: nil)
|
106
|
+
sourced_sayings = translate('faker.dune.sayings').keys
|
107
|
+
|
108
|
+
if source.nil?
|
109
|
+
source = sample(sourced_sayings).to_s
|
110
|
+
else
|
111
|
+
source = source.to_s.downcase
|
112
|
+
|
113
|
+
unless sourced_sayings.include?(source.to_sym)
|
114
|
+
raise ArgumentError,
|
115
|
+
"Sources quoted in sayings can be left blank or #{sourced_sayings.join(', ')}"
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
fetch("dune.sayings.#{source}")
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
@@ -0,0 +1,249 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Books
|
5
|
+
class Lovecraft < Base
|
6
|
+
class << self
|
7
|
+
##
|
8
|
+
# Produces the name of a location
|
9
|
+
#
|
10
|
+
# @return [String]
|
11
|
+
#
|
12
|
+
# @example
|
13
|
+
# Faker::Books::Lovecraft.location #=> "Kingsport"
|
14
|
+
#
|
15
|
+
# @faker.version 1.9.3
|
16
|
+
def location
|
17
|
+
fetch('lovecraft.location')
|
18
|
+
end
|
19
|
+
|
20
|
+
##
|
21
|
+
# @param number [Integer] The number of times to repeat the chant
|
22
|
+
# @return [String]
|
23
|
+
#
|
24
|
+
# @example
|
25
|
+
# Faker::Books::Lovecraft.fhtagn
|
26
|
+
# #=> "Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn"
|
27
|
+
# @example
|
28
|
+
# Faker::Books::Lovecraft.fhtagn(number: 3)
|
29
|
+
# #=> "Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fht...
|
30
|
+
#
|
31
|
+
# @faker.version 1.9.3
|
32
|
+
def fhtagn(number: 1)
|
33
|
+
Array.new(number) { fetch('lovecraft.fhtagn') }.join('. ')
|
34
|
+
end
|
35
|
+
|
36
|
+
##
|
37
|
+
# Produces the name of a deity
|
38
|
+
#
|
39
|
+
# @return [String]
|
40
|
+
#
|
41
|
+
# @example
|
42
|
+
# Faker::Books::Lovecraft.deity #=> "Shub-Niggurath"
|
43
|
+
#
|
44
|
+
# @faker.version 1.9.3
|
45
|
+
def deity
|
46
|
+
fetch('lovecraft.deity')
|
47
|
+
end
|
48
|
+
|
49
|
+
##
|
50
|
+
# Produces the name of a tome
|
51
|
+
#
|
52
|
+
# @return [String]
|
53
|
+
#
|
54
|
+
# @example
|
55
|
+
# Faker::Books::Lovecraft.tome #=> "Book of Eibon"
|
56
|
+
#
|
57
|
+
# @faker.version 1.9.3
|
58
|
+
def tome
|
59
|
+
fetch('lovecraft.tome')
|
60
|
+
end
|
61
|
+
|
62
|
+
##
|
63
|
+
# Produces a random sentence
|
64
|
+
#
|
65
|
+
# @param word_count [Integer] The number of words to have in the sentence
|
66
|
+
# @param random_words_to_add [Integer]
|
67
|
+
# @param open_compounds_allowed [Boolean] If true, generated sentence can contain words having additional spaces
|
68
|
+
#
|
69
|
+
# @return [String]
|
70
|
+
#
|
71
|
+
# @example
|
72
|
+
# Faker::Books::Lovecraft.sentence
|
73
|
+
# #=> "Furtive antiquarian squamous dank cat loathsome amorphous lurk."
|
74
|
+
# @example
|
75
|
+
# Faker::Books::Lovecraft.sentence(word_count: 3)
|
76
|
+
# #=> "Daemoniac antediluvian fainted squamous comprehension gambrel nameless singular."
|
77
|
+
# @example
|
78
|
+
# Faker::Books::Lovecraft.sentence(word_count: 3, random_words_to_add: 1)
|
79
|
+
# #=> "Amorphous indescribable tenebrous."
|
80
|
+
# @example
|
81
|
+
# Faker::Books::Lovecraft.sentence(word_count: 3, random_words_to_add: 0, open_compounds_allowed: true)
|
82
|
+
# #=> "Effulgence unmentionable gambrel."
|
83
|
+
#
|
84
|
+
# @faker.version 1.9.3
|
85
|
+
def sentence(word_count: 4, random_words_to_add: 6, open_compounds_allowed: true)
|
86
|
+
"#{words(number: word_count + rand(random_words_to_add.to_i).to_i, spaces_allowed: open_compounds_allowed).join(' ').capitalize}."
|
87
|
+
end
|
88
|
+
|
89
|
+
##
|
90
|
+
# Produces a random word
|
91
|
+
#
|
92
|
+
# @return [String]
|
93
|
+
#
|
94
|
+
# @example
|
95
|
+
# Faker::Books::Lovecraft.word #=> "furtive"
|
96
|
+
#
|
97
|
+
# @faker.version 1.9.3
|
98
|
+
def word
|
99
|
+
random_word = sample(translate('faker.lovecraft.words'))
|
100
|
+
random_word =~ /\s/ ? word : random_word
|
101
|
+
end
|
102
|
+
|
103
|
+
##
|
104
|
+
# Produces a array of random words
|
105
|
+
#
|
106
|
+
# @param number [Integer] Number of words to generate
|
107
|
+
# @param spaces_allowed [Boolean] If true, generated words can contain spaces
|
108
|
+
#
|
109
|
+
# @return [Array<String>]
|
110
|
+
#
|
111
|
+
# @example
|
112
|
+
# Faker::Books::Lovecraft.words
|
113
|
+
# #=> [
|
114
|
+
# # "manuscript",
|
115
|
+
# # "abnormal",
|
116
|
+
# # "singular",
|
117
|
+
# # ]
|
118
|
+
# @example
|
119
|
+
# Faker::Books::Lovecraft.words(number: 2)
|
120
|
+
# #=> [
|
121
|
+
# # "daemoniac",
|
122
|
+
# # "cat",
|
123
|
+
# # ]
|
124
|
+
# @example
|
125
|
+
# Faker::Books::Lovecraft.words(number: 2, spaces_allowed: 1)
|
126
|
+
# #=> [
|
127
|
+
# # "lurk",
|
128
|
+
# # "charnel",
|
129
|
+
# # ]
|
130
|
+
#
|
131
|
+
# @faker.version 1.9.3
|
132
|
+
def words(number: 3, spaces_allowed: false)
|
133
|
+
resolved_num = resolve(number)
|
134
|
+
word_list = translate('faker.lovecraft.words')
|
135
|
+
word_list *= ((resolved_num / word_list.length) + 1)
|
136
|
+
|
137
|
+
return shuffle(word_list)[0, resolved_num] if spaces_allowed
|
138
|
+
|
139
|
+
words = shuffle(word_list)[0, resolved_num]
|
140
|
+
words.each_with_index { |w, i| words[i] = word if w =~ /\s/ }
|
141
|
+
end
|
142
|
+
|
143
|
+
##
|
144
|
+
# Produces a array of random sentences
|
145
|
+
#
|
146
|
+
# @param number [Integer] Number of sentences to generate
|
147
|
+
#
|
148
|
+
# @return [Array<String>]
|
149
|
+
#
|
150
|
+
# @example
|
151
|
+
# Faker::Books::Lovecraft.sentences
|
152
|
+
# #=> [
|
153
|
+
# # "Nameless loathsome decadent gambrel.",
|
154
|
+
# # "Ululate swarthy immemorial cat madness gibbous unmentionable unnamable.",
|
155
|
+
# # "Decadent antediluvian non-euclidean tentacles amorphous tenebrous.",
|
156
|
+
# # ]
|
157
|
+
# @example
|
158
|
+
# Faker::Books::Lovecraft.sentences(number: 2)
|
159
|
+
# #=> [
|
160
|
+
# # "Antediluvian amorphous unmentionable singular accursed squamous immemorial.",
|
161
|
+
# # "Gambrel daemoniac gibbous stygian shunned ululate iridescence abnormal.",
|
162
|
+
# # ]
|
163
|
+
#
|
164
|
+
# @faker.version 1.9.3
|
165
|
+
def sentences(number: 3)
|
166
|
+
[].tap do |sentences|
|
167
|
+
1.upto(resolve(number)) do
|
168
|
+
sentences << sentence(word_count: 3)
|
169
|
+
end
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
##
|
174
|
+
# Produces a random paragraph
|
175
|
+
#
|
176
|
+
# @param sentence_count [Integer] Number of sentences to generate
|
177
|
+
# @param random_sentences_to_add [Integer]
|
178
|
+
#
|
179
|
+
# @return [String]
|
180
|
+
#
|
181
|
+
# @example
|
182
|
+
# Faker::Books::Lovecraft.paragraph
|
183
|
+
# #=> "Squamous nameless daemoniac fungus ululate. Cyclopean stygian decadent loathsome manuscript tenebrous. Foetid abnormal stench. Dank non-euclidean comprehension eldritch. Charnel singular shunned lurk effulgence fungus."
|
184
|
+
# @example
|
185
|
+
# Faker::Books::Lovecraft.paragraph(sentence_count: 2)
|
186
|
+
# #=> "Decadent lurk tenebrous loathsome furtive spectral amorphous gibbous. Gambrel eldritch daemoniac cat madness comprehension stygian effulgence."
|
187
|
+
# @example
|
188
|
+
# Faker::Books::Lovecraft.paragraph(sentence_count: 1, random_sentences_to_add: 1)
|
189
|
+
# #=> "Stench cyclopean fainted antiquarian nameless. Antiquarian ululate tenebrous non-euclidean effulgence."
|
190
|
+
#
|
191
|
+
# @faker.version 1.9.3
|
192
|
+
def paragraph(sentence_count: 3, random_sentences_to_add: 3)
|
193
|
+
sentences(number: resolve(sentence_count) + rand(random_sentences_to_add.to_i).to_i).join(' ')
|
194
|
+
end
|
195
|
+
|
196
|
+
##
|
197
|
+
# Produces a array of random paragraphs
|
198
|
+
#
|
199
|
+
# @param number [Integer] Number of paragraphs to generate
|
200
|
+
#
|
201
|
+
# @return [Array<String>]
|
202
|
+
#
|
203
|
+
# @example
|
204
|
+
# Faker::Books::Lovecraft.paragraphs
|
205
|
+
# #=> [
|
206
|
+
# # "Noisome daemoniac gibbous abnormal antediluvian. Unutterable fung...
|
207
|
+
# # "Non-euclidean immemorial indescribable accursed furtive. Dank unn...
|
208
|
+
# # "Charnel antediluvian unnamable cat blasphemous comprehension tene...
|
209
|
+
# # ]
|
210
|
+
# @example
|
211
|
+
# Faker::Books::Lovecraft.paragraphs(number: 2)
|
212
|
+
# #=> [
|
213
|
+
# # "Hideous amorphous manuscript antediluvian non-euclidean cat eldri...
|
214
|
+
# # "Tenebrous unnamable comprehension antediluvian lurk. Lurk spectra...
|
215
|
+
# # ]
|
216
|
+
#
|
217
|
+
# @faker.version 1.9.3
|
218
|
+
def paragraphs(number: 3)
|
219
|
+
[].tap do |paragraphs|
|
220
|
+
1.upto(resolve(number)) do
|
221
|
+
paragraphs << paragraph(sentence_count: 3)
|
222
|
+
end
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
226
|
+
##
|
227
|
+
# @param characters [Integer] Number of characters to generate in the paragraph
|
228
|
+
#
|
229
|
+
# @return [String]
|
230
|
+
#
|
231
|
+
# @example
|
232
|
+
# Faker::Books::Lovecraft.paragraph_by_chars
|
233
|
+
# #=> "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."
|
234
|
+
# @example
|
235
|
+
# Faker::Books::Lovecraft.paragraph_by_chars(characters: 128)
|
236
|
+
# #=> "Effulgence madness noisome. Fungus stygian mortal madness amorphous dank. Decadent noisome hideous effulgence. Tentacles charne."
|
237
|
+
#
|
238
|
+
# @faker.version 1.9.3
|
239
|
+
def paragraph_by_chars(characters: 256)
|
240
|
+
paragraph = paragraph(sentence_count: 3)
|
241
|
+
|
242
|
+
paragraph += " #{paragraph(sentence_count: 3)}" while paragraph.length < characters
|
243
|
+
|
244
|
+
"#{paragraph[0...characters - 1]}."
|
245
|
+
end
|
246
|
+
end
|
247
|
+
end
|
248
|
+
end
|
249
|
+
end
|