faker 1.8.7 → 2.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/CHANGELOG.md +1423 -6
- data/History.md +4 -4
- data/License.txt +2 -2
- data/README.md +301 -126
- data/bin/faker +5 -0
- data/lib/faker.rb +150 -61
- data/lib/faker/blockchain/aeternity.rb +70 -0
- data/lib/faker/blockchain/bitcoin.rb +60 -0
- data/lib/faker/blockchain/ethereum.rb +26 -0
- data/lib/faker/blockchain/tezos.rb +135 -0
- data/lib/faker/books/book.rb +61 -0
- data/lib/faker/books/culture_series.rb +83 -0
- data/lib/faker/books/dune.rb +132 -0
- data/lib/faker/books/lovecraft.rb +280 -0
- data/lib/faker/creature/animal.rb +22 -0
- data/lib/faker/creature/cat.rb +50 -0
- data/lib/faker/creature/dog.rb +115 -0
- data/lib/faker/creature/horse.rb +37 -0
- data/lib/faker/default/address.rb +368 -0
- data/lib/faker/default/alphanumeric.rb +73 -0
- data/lib/faker/default/ancient.rb +59 -0
- data/lib/faker/default/app.rb +77 -0
- data/lib/faker/default/appliance.rb +33 -0
- data/lib/faker/default/artist.rb +20 -0
- data/lib/faker/default/avatar.rb +60 -0
- data/lib/faker/default/bank.rb +207 -0
- data/lib/faker/default/barcode.rb +165 -0
- data/lib/faker/default/beer.rb +113 -0
- data/lib/faker/default/blood.rb +48 -0
- data/lib/faker/default/boolean.rb +26 -0
- data/lib/faker/default/bossa_nova.rb +33 -0
- data/lib/faker/default/business.rb +50 -0
- data/lib/faker/default/camera.rb +46 -0
- data/lib/faker/default/cannabis.rb +135 -0
- data/lib/faker/default/chile_rut.rb +98 -0
- data/lib/faker/default/chuck_norris.rb +25 -0
- data/lib/faker/default/code.rb +282 -0
- data/lib/faker/default/coffee.rb +82 -0
- data/lib/faker/default/coin.rb +33 -0
- data/lib/faker/default/color.rb +79 -0
- data/lib/faker/default/commerce.rb +143 -0
- data/lib/faker/default/company.rb +581 -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 +48 -0
- data/lib/faker/default/crypto_coin.rb +94 -0
- data/lib/faker/default/currency.rb +46 -0
- data/lib/faker/default/date.rb +186 -0
- data/lib/faker/default/dc_comics.rb +70 -0
- data/lib/faker/default/demographic.rb +98 -0
- data/lib/faker/default/dessert.rb +48 -0
- data/lib/faker/default/device.rb +85 -0
- data/lib/faker/default/driving_licence.rb +131 -0
- data/lib/faker/default/drone.rb +332 -0
- data/lib/faker/default/educator.rb +102 -0
- data/lib/faker/default/electrical_components.rb +48 -0
- data/lib/faker/default/esport.rb +72 -0
- data/lib/faker/default/faker_adjective.rb +35 -0
- data/lib/faker/default/file.rb +100 -0
- data/lib/faker/default/fillmurray.rb +45 -0
- data/lib/faker/default/finance.rb +89 -0
- data/lib/faker/default/food.rb +113 -0
- data/lib/faker/default/funny_name.rb +90 -0
- data/lib/faker/default/gender.rb +46 -0
- data/lib/faker/default/greek_philosophers.rb +33 -0
- data/lib/faker/default/hacker.rb +103 -0
- data/lib/faker/default/hipster.rb +194 -0
- data/lib/faker/default/house.rb +33 -0
- data/lib/faker/default/id_number.rb +279 -0
- data/lib/faker/default/industry_segments.rb +61 -0
- data/lib/faker/default/internet.rb +584 -0
- data/lib/faker/default/internet_http.rb +48 -0
- data/lib/faker/default/invoice.rb +136 -0
- data/lib/faker/default/job.rb +61 -0
- data/lib/faker/default/json.rb +143 -0
- data/lib/faker/default/kpop.rb +85 -0
- data/lib/faker/default/lorem.rb +306 -0
- data/lib/faker/default/lorem_flickr.rb +138 -0
- data/lib/faker/default/lorem_pixel.rb +70 -0
- data/lib/faker/default/markdown.rb +175 -0
- data/lib/faker/default/marketing.rb +22 -0
- data/lib/faker/default/measurement.rb +207 -0
- data/lib/faker/default/military.rb +98 -0
- data/lib/faker/default/mountain.rb +33 -0
- data/lib/faker/default/name.rb +156 -0
- data/lib/faker/default/nation.rb +76 -0
- data/lib/faker/default/nato_phonetic_alphabet.rb +20 -0
- data/lib/faker/default/nhs.rb +57 -0
- data/lib/faker/default/number.rb +289 -0
- data/lib/faker/default/omniauth.rb +461 -0
- data/lib/faker/default/phone_number.rb +137 -0
- data/lib/faker/default/placeholdit.rb +63 -0
- data/lib/faker/default/programming_language.rb +33 -0
- data/lib/faker/default/relationship.rb +91 -0
- data/lib/faker/default/restaurant.rb +63 -0
- data/lib/faker/default/science.rb +46 -0
- data/lib/faker/default/slack_emoji.rb +124 -0
- data/lib/faker/default/source.rb +76 -0
- data/lib/faker/default/south_africa.rb +141 -0
- data/lib/faker/default/space.rb +191 -0
- data/lib/faker/default/string.rb +66 -0
- data/lib/faker/default/stripe.rb +142 -0
- data/lib/faker/default/subscription.rb +70 -0
- data/lib/faker/default/superhero.rb +72 -0
- data/lib/faker/default/team.rb +74 -0
- data/lib/faker/default/time.rb +179 -0
- data/lib/faker/default/twitter.rb +223 -0
- data/lib/faker/default/types.rb +182 -0
- data/lib/faker/default/university.rb +75 -0
- data/lib/faker/default/vehicle.rb +342 -0
- data/lib/faker/default/verb.rb +72 -0
- data/lib/faker/default/world_cup.rb +86 -0
- data/lib/faker/fantasy/tolkien.rb +67 -0
- data/lib/faker/games/clash_of_clans.rb +48 -0
- data/lib/faker/games/control.rb +113 -0
- data/lib/faker/games/dnd.rb +136 -0
- data/lib/faker/games/dota.rb +80 -0
- data/lib/faker/games/elder_scrolls.rb +139 -0
- data/lib/faker/games/fallout.rb +62 -0
- data/lib/faker/games/game.rb +48 -0
- data/lib/faker/games/half_life.rb +48 -0
- data/lib/faker/games/heroes.rb +61 -0
- data/lib/faker/games/heroes_of_the_storm.rb +72 -0
- data/lib/faker/games/league_of_legends.rb +87 -0
- data/lib/faker/games/minecraft.rb +113 -0
- data/lib/faker/games/myst.rb +74 -0
- data/lib/faker/games/overwatch.rb +48 -0
- data/lib/faker/games/pokemon.rb +48 -0
- data/lib/faker/games/sonic_the_hedgehog.rb +48 -0
- data/lib/faker/games/street_fighter.rb +61 -0
- data/lib/faker/games/super_mario.rb +48 -0
- data/lib/faker/games/super_smash_bros.rb +35 -0
- data/lib/faker/games/touhou.rb +75 -0
- data/lib/faker/games/warhammer_fantasy.rb +74 -0
- data/lib/faker/games/witcher.rb +87 -0
- data/lib/faker/games/world_of_warcraft.rb +60 -0
- data/lib/faker/games/zelda.rb +62 -0
- data/lib/faker/japanese_media/conan.rb +48 -0
- data/lib/faker/japanese_media/doraemon.rb +48 -0
- data/lib/faker/japanese_media/dragon_ball.rb +48 -0
- data/lib/faker/japanese_media/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/movies/back_to_the_future.rb +49 -0
- data/lib/faker/movies/departed.rb +49 -0
- data/lib/faker/movies/ghostbusters.rb +49 -0
- data/lib/faker/movies/harry_potter.rb +87 -0
- data/lib/faker/movies/hitchhikers_guide_to_the_galaxy.rb +106 -0
- data/lib/faker/movies/hobbit.rb +62 -0
- data/lib/faker/movies/how_to_train_your_dragon.rb +48 -0
- data/lib/faker/movies/lebowski.rb +48 -0
- data/lib/faker/movies/lord_of_the_rings.rb +49 -0
- data/lib/faker/movies/movie.rb +33 -0
- data/lib/faker/movies/princess_bride.rb +36 -0
- data/lib/faker/movies/room.rb +63 -0
- data/lib/faker/movies/star_wars.rb +273 -0
- data/lib/faker/movies/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 +133 -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/sports/basketball.rb +61 -0
- data/lib/faker/sports/football.rb +74 -0
- data/lib/faker/sports/volleyball.rb +74 -0
- data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +37 -0
- data/lib/faker/tv_shows/big_bang_theory.rb +37 -0
- data/lib/faker/tv_shows/bojack_horseman.rb +51 -0
- data/lib/faker/tv_shows/breaking_bad.rb +37 -0
- data/lib/faker/tv_shows/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 +26 -0
- data/lib/faker/tv_shows/new_girl.rb +38 -0
- data/lib/faker/tv_shows/parks_and_rec.rb +37 -0
- data/lib/faker/tv_shows/rick_and_morty.rb +51 -0
- data/lib/faker/tv_shows/ru_paul.rb +37 -0
- data/lib/faker/tv_shows/seinfeld.rb +51 -0
- data/lib/faker/tv_shows/silicon_valley.rb +118 -0
- data/lib/faker/tv_shows/simpsons.rb +65 -0
- data/lib/faker/tv_shows/south_park.rb +38 -0
- data/lib/faker/tv_shows/star_trek.rb +63 -0
- data/lib/faker/tv_shows/stargate.rb +51 -0
- data/lib/faker/tv_shows/stranger_things.rb +38 -0
- data/lib/faker/tv_shows/suits.rb +37 -0
- data/lib/faker/tv_shows/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_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 +3 -1
- data/lib/helpers/base58.rb +22 -0
- data/lib/helpers/char.rb +31 -35
- data/lib/helpers/unique_generator.rb +28 -2
- data/lib/locales/README.md +8 -9
- data/lib/locales/ar.yml +102 -0
- data/lib/locales/bg.yml +5 -2
- data/lib/locales/ca-CAT.yml +1 -1
- data/lib/locales/ca.yml +2 -4
- data/lib/locales/da-DK.yml +10 -6
- data/lib/locales/de-AT.yml +12 -3
- data/lib/locales/de-CH.yml +1696 -1
- data/lib/locales/de.yml +19 -9
- data/lib/locales/ee.yml +61 -0
- data/lib/locales/en-AU.yml +50 -8
- data/lib/locales/en-CA.yml +27 -2
- data/lib/locales/en-GB.yml +2 -1
- data/lib/locales/en-IND.yml +5 -2
- data/lib/locales/en-MS.yml +8 -1
- data/lib/locales/en-NEP.yml +6 -3
- data/lib/locales/en-NG.yml +2 -0
- data/lib/locales/en-NZ.yml +140 -17
- data/lib/locales/en-PAK.yml +4 -2
- data/lib/locales/en-SG.yml +6 -1
- data/lib/locales/en-TH.yml +360 -0
- data/lib/locales/en-US.yml +37 -9
- data/lib/locales/en-ZA.yml +114 -17
- data/lib/locales/en-au-ocker.yml +2 -1
- data/lib/locales/en.yml +0 -1
- data/lib/locales/en/address.yml +501 -3
- data/lib/locales/en/adjective.yml +179 -0
- data/lib/locales/en/animal.yml +6 -0
- data/lib/locales/en/appliance.yml +5 -0
- data/lib/locales/en/aqua_teen_hunger_force.yml +33 -1
- data/lib/locales/en/bank.yml +275 -60
- data/lib/locales/en/barcode.yml +24 -0
- data/lib/locales/en/basketball.yml +99 -0
- data/lib/locales/en/beer.yml +2 -1
- data/lib/locales/en/big_bang_theory.yml +38 -0
- data/lib/locales/en/blood.yml +13 -0
- data/lib/locales/en/bojack_horseman.yml +6 -0
- data/lib/locales/en/buffy.yml +260 -0
- data/lib/locales/en/camera.yml +611 -0
- data/lib/locales/en/cannabis.yml +13 -0
- data/lib/locales/en/cat.yml +5 -4
- data/lib/locales/en/chiquito.yml +64 -0
- data/lib/locales/en/clash_of_clan.yml +101 -0
- data/lib/locales/en/coin.yml +6 -0
- data/lib/locales/en/color.yml +1 -1
- data/lib/locales/en/community.yml +33 -0
- data/lib/locales/en/company.yml +3 -2
- data/lib/locales/en/computer.yml +36 -0
- data/lib/locales/en/conan.yml +171 -0
- data/lib/locales/en/construction.yml +425 -0
- data/lib/locales/en/control.yml +247 -0
- data/lib/locales/en/cosmere.yml +57 -0
- data/lib/locales/en/crypto_coin.yml +25 -0
- data/lib/locales/en/culture_series.yml +307 -0
- data/lib/locales/en/currency.yml +6 -0
- data/lib/locales/en/dc_comics.yml +52 -0
- data/lib/locales/en/demographic.yml +218 -5
- data/lib/locales/en/departed.yml +50 -0
- data/lib/locales/en/dessert.yml +3 -3
- data/lib/locales/en/device.yml +115 -0
- data/lib/locales/en/dnd.yml +451 -0
- data/lib/locales/en/dog.yml +9 -9
- data/lib/locales/en/doraemon.yml +286 -0
- data/lib/locales/en/dota.yml +573 -0
- data/lib/locales/en/dr_who.yml +6 -2
- data/lib/locales/en/dragon_ball.yml +243 -1
- data/lib/locales/en/driving_license.yml +181 -0
- data/lib/locales/en/drone.yml +95 -0
- data/lib/locales/en/dumb_and_dumber.yml +1 -1
- data/lib/locales/en/dune.yml +401 -131
- data/lib/locales/en/educator.yml +76 -6
- data/lib/locales/en/elder_scrolls.yml +583 -5
- data/lib/locales/en/electrical_components.yml +6 -0
- data/lib/locales/en/esport.yml +5 -5
- data/lib/locales/en/fallout.yml +313 -134
- data/lib/locales/en/final_space.yml +37 -0
- data/lib/locales/en/finance.yml +116 -0
- data/lib/locales/en/food.yml +6 -2
- data/lib/locales/en/football.yml +8 -0
- data/lib/locales/en/fresh_prince_of_bel_air.yml +1 -1
- data/lib/locales/en/friends.yml +3 -3
- data/lib/locales/en/futurama.yml +344 -0
- data/lib/locales/en/game.yml +283 -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/half_life.yml +88 -0
- data/lib/locales/en/harry_potter.yml +2 -1
- data/lib/locales/en/heroes.yml +411 -0
- data/lib/locales/en/heroes_of_the_storm.yml +134 -0
- data/lib/locales/en/horse.yml +6 -0
- data/lib/locales/en/house.yml +5 -0
- data/lib/locales/en/how_to_train_your_dragon.yml +174 -0
- data/lib/locales/en/industry_segments.yml +7 -0
- data/lib/locales/en/invoice.yml +6 -0
- data/lib/locales/en/jack_handey.yml +54 -0
- data/lib/locales/en/job.yml +2 -2
- data/lib/locales/en/kpop.yml +3 -3
- data/lib/locales/en/league_of_legends.yml +287 -7
- data/lib/locales/en/lebowski.yml +1 -1
- data/lib/locales/en/lorem.yml +6 -0
- data/lib/locales/en/marketing.yml +4 -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 +158 -0
- data/lib/locales/en/movie.yml +192 -1
- data/lib/locales/en/music.yml +451 -1
- data/lib/locales/en/myst.yml +104 -0
- data/lib/locales/en/name.yml +15 -14
- data/lib/locales/en/naruto.yml +231 -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 +2 -2
- data/lib/locales/en/opera.yml +340 -0
- data/lib/locales/en/overwatch.yml +2652 -33
- 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 +2 -1
- data/lib/locales/en/pokemon.yml +419 -5
- data/lib/locales/en/prince.yml +227 -0
- data/lib/locales/en/princess_bride.yml +5 -0
- data/lib/locales/en/programming_language.yml +2 -1
- data/lib/locales/en/quote.yml +695 -0
- data/lib/locales/en/rajnikanth.yml +77 -0
- data/lib/locales/en/relationship.yml +10 -0
- data/lib/locales/en/restaurant.yml +129 -0
- data/lib/locales/en/rock_band.yml +1 -0
- data/lib/locales/en/room.yml +68 -0
- data/lib/locales/en/rupaul.yml +51 -21
- data/lib/locales/en/rush.yml +32 -0
- data/lib/locales/en/science.yml +1 -0
- data/lib/locales/en/seinfeld.yml +2 -1
- data/lib/locales/en/shakespeare.yml +23 -26
- data/lib/locales/en/show.yml +597 -0
- data/lib/locales/en/silicon_valley.yml +1 -0
- data/lib/locales/en/simpsons.yml +668 -0
- data/lib/locales/en/sonic_the_hedgehog.yml +410 -0
- data/lib/locales/en/source.yml +46 -0
- data/lib/locales/en/south_park.yml +5 -0
- data/lib/locales/en/space.yml +3 -2
- data/lib/locales/en/star_trek.yml +1 -1
- data/lib/locales/en/star_wars.yml +568 -210
- data/lib/locales/en/stargate.yml +1 -2
- 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 +220 -0
- data/lib/locales/en/sword_art_online.yml +334 -0
- data/lib/locales/en/team.yml +1 -1
- data/lib/locales/en/the_expanse.yml +7 -0
- data/lib/locales/en/the_it_crowd.yml +155 -0
- data/lib/locales/en/tolkien.yml +2453 -0
- data/lib/locales/en/touhou.yml +839 -0
- data/lib/locales/en/vehicle.yml +77 -49
- 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 +391 -8
- data/lib/locales/en/world_cup.yml +271 -0
- data/lib/locales/en/world_of_warcraft.yml +124 -5
- data/lib/locales/en/zelda.yml +964 -5
- data/lib/locales/es-AR.yml +4603 -0
- data/lib/locales/es-MX.yml +17 -1
- data/lib/locales/es.yml +75 -1
- data/lib/locales/fa.yml +6 -0
- data/lib/locales/fi-FI.yml +12 -6
- data/lib/locales/fr-CA.yml +107 -0
- data/lib/locales/fr-CH.yml +78 -0
- data/lib/locales/fr.yml +65 -12
- data/lib/locales/he.yml +2 -0
- data/lib/locales/hy.yml +411 -0
- data/lib/locales/id.yml +7 -2
- data/lib/locales/it.yml +15 -3
- data/lib/locales/ja.yml +86 -15
- data/lib/locales/ko.yml +96 -2
- data/lib/locales/lv.yml +55 -0
- data/lib/locales/nb-NO.yml +15 -6
- data/lib/locales/nl.yml +13 -4
- data/lib/locales/no.yml +7 -0
- data/lib/locales/pl.yml +12 -1
- data/lib/locales/pt-BR.yml +624 -17
- data/lib/locales/pt.yml +16 -6
- data/lib/locales/ru.yml +6 -2
- data/lib/locales/sk.yml +21 -13
- data/lib/locales/sv.yml +15 -7
- data/lib/locales/th.yml +380 -0
- data/lib/locales/tr.yml +14 -0
- data/lib/locales/uk.yml +17 -4
- data/lib/locales/vi.yml +7 -2
- data/lib/locales/zh-CN.yml +4 -4
- data/lib/locales/zh-TW.yml +3 -1
- metadata +448 -127
- data/lib/extensions/array.rb +0 -22
- data/lib/extensions/symbol.rb +0 -9
- data/lib/faker/address.rb +0 -67
- data/lib/faker/ancient.rb +0 -21
- data/lib/faker/app.rb +0 -23
- data/lib/faker/aqua_teen_hunger_force.rb +0 -9
- data/lib/faker/artist.rb +0 -9
- data/lib/faker/avatar.rb +0 -15
- data/lib/faker/back_to_the_future.rb +0 -17
- data/lib/faker/bank.rb +0 -37
- data/lib/faker/beer.rb +0 -40
- data/lib/faker/bitcoin.rb +0 -48
- data/lib/faker/book.rb +0 -23
- data/lib/faker/boolean.rb +0 -9
- data/lib/faker/bossa_nova.rb +0 -13
- data/lib/faker/breaking_bad.rb +0 -16
- data/lib/faker/business.rb +0 -22
- data/lib/faker/cat.rb +0 -19
- data/lib/faker/chuck_norris.rb +0 -11
- data/lib/faker/code.rb +0 -147
- data/lib/faker/coffee.rb +0 -29
- data/lib/faker/color.rb +0 -30
- data/lib/faker/commerce.rb +0 -64
- data/lib/faker/company.rb +0 -162
- data/lib/faker/compass.rb +0 -65
- data/lib/faker/crypto.rb +0 -19
- data/lib/faker/date.rb +0 -80
- data/lib/faker/demographic.rb +0 -35
- data/lib/faker/dessert.rb +0 -19
- data/lib/faker/dog.rb +0 -39
- data/lib/faker/dr_who.rb +0 -34
- data/lib/faker/dragon_ball.rb +0 -9
- data/lib/faker/dumb_and_dumber.rb +0 -17
- data/lib/faker/dune.rb +0 -54
- data/lib/faker/educator.rb +0 -23
- data/lib/faker/elder_scrolls.rb +0 -21
- data/lib/faker/esport.rb +0 -25
- data/lib/faker/fallout.rb +0 -21
- data/lib/faker/family_guy.rb +0 -17
- data/lib/faker/file.rb +0 -24
- data/lib/faker/fillmurray.rb +0 -14
- data/lib/faker/finance.rb +0 -28
- data/lib/faker/food.rb +0 -25
- data/lib/faker/friends.rb +0 -17
- data/lib/faker/funny_name.rb +0 -43
- data/lib/faker/game_of_thrones.rb +0 -25
- data/lib/faker/hacker.rb +0 -45
- data/lib/faker/harry_potter.rb +0 -25
- data/lib/faker/hey_arnold.rb +0 -17
- data/lib/faker/hipster.rb +0 -59
- data/lib/faker/hitchhikers_guide_to_the_galaxy.rb +0 -33
- data/lib/faker/hobbit.rb +0 -21
- data/lib/faker/how_i_met_your_mother.rb +0 -21
- data/lib/faker/id_number.rb +0 -36
- data/lib/faker/internet.rb +0 -178
- data/lib/faker/job.rb +0 -16
- data/lib/faker/kpop.rb +0 -29
- data/lib/faker/league_of_legends.rb +0 -29
- data/lib/faker/lebowski.rb +0 -17
- data/lib/faker/lord_of_the_rings.rb +0 -13
- data/lib/faker/lorem.rb +0 -68
- data/lib/faker/lorem_pixel.rb +0 -21
- data/lib/faker/lovecraft.rb +0 -73
- data/lib/faker/markdown.rb +0 -67
- data/lib/faker/matz.rb +0 -9
- data/lib/faker/measurement.rb +0 -127
- data/lib/faker/most_interesting_man_in_the_world.rb +0 -9
- data/lib/faker/movie.rb +0 -9
- data/lib/faker/music.rb +0 -33
- data/lib/faker/name.rb +0 -46
- data/lib/faker/number.rb +0 -86
- data/lib/faker/omniauth.rb +0 -340
- data/lib/faker/one_piece.rb +0 -29
- data/lib/faker/overwatch.rb +0 -17
- data/lib/faker/phone_number.rb +0 -44
- data/lib/faker/placeholdit.rb +0 -20
- data/lib/faker/pokemon.rb +0 -17
- data/lib/faker/programming_language.rb +0 -13
- data/lib/faker/rick_and_morty.rb +0 -17
- data/lib/faker/robin.rb +0 -9
- data/lib/faker/rock_band.rb +0 -9
- data/lib/faker/rupaul.rb +0 -15
- data/lib/faker/science.rb +0 -15
- data/lib/faker/seinfeld.rb +0 -13
- data/lib/faker/shakespeare.rb +0 -40
- data/lib/faker/silicon_valley.rb +0 -33
- data/lib/faker/simpsons.rb +0 -22
- data/lib/faker/slack_emoji.rb +0 -43
- data/lib/faker/space.rb +0 -58
- data/lib/faker/star_trek.rb +0 -21
- data/lib/faker/star_wars.rb +0 -102
- data/lib/faker/stargate.rb +0 -17
- data/lib/faker/superhero.rb +0 -25
- data/lib/faker/team.rb +0 -24
- data/lib/faker/the_fresh_prince_of_bel_air.rb +0 -17
- data/lib/faker/the_thick_of_it.rb +0 -17
- data/lib/faker/time.rb +0 -51
- data/lib/faker/twin_peaks.rb +0 -17
- data/lib/faker/twitter.rb +0 -172
- data/lib/faker/types.rb +0 -93
- data/lib/faker/umphreys_mcgee.rb +0 -9
- data/lib/faker/university.rb +0 -28
- data/lib/faker/v_for_vendetta.rb +0 -17
- data/lib/faker/vehicle.rb +0 -39
- data/lib/faker/venture_bros.rb +0 -21
- data/lib/faker/witcher.rb +0 -29
- data/lib/faker/world_of_warcraft.rb +0 -13
- data/lib/faker/yoda.rb +0 -10
- data/lib/faker/zelda.rb +0 -22
- data/lib/locales/en/hobbit.yml +0 -19
- data/lib/locales/en/lord_of_the_rings.yml +0 -5
- data/lib/locales/en/matz.yml +0 -28
- data/lib/locales/en/most_interesting_man_in_the_world.yml +0 -106
- data/lib/locales/en/robin.yml +0 -4
|
@@ -0,0 +1,306 @@
|
|
|
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
|
+
#
|
|
32
|
+
# @faker.version 2.1.3
|
|
33
|
+
def words(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 3, supplemental: false)
|
|
34
|
+
warn_for_deprecated_arguments do |keywords|
|
|
35
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
|
36
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
resolved_num = resolve(number)
|
|
40
|
+
word_list = (
|
|
41
|
+
translate('faker.lorem.words') +
|
|
42
|
+
(supplemental ? translate('faker.lorem.supplemental') : [])
|
|
43
|
+
)
|
|
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(legacy_number = NOT_GIVEN, number: 255, min_alpha: 0, min_numeric: 0)
|
|
78
|
+
warn_for_deprecated_arguments do |keywords|
|
|
79
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
Alphanumeric.alphanumeric(number: number, min_alpha: min_alpha, min_numeric: min_numeric)
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
# rubocop:disable Style/AsciiComments
|
|
86
|
+
|
|
87
|
+
##
|
|
88
|
+
# Generates the emoji
|
|
89
|
+
#
|
|
90
|
+
# @return [String]
|
|
91
|
+
#
|
|
92
|
+
# @example
|
|
93
|
+
# Faker::Lorem.multibyte #=> "😀"
|
|
94
|
+
# Faker::Lorem.multibyte #=> "❤"
|
|
95
|
+
#
|
|
96
|
+
# @faker.version 2.1.3
|
|
97
|
+
def multibyte
|
|
98
|
+
sample(translate('faker.lorem.multibyte')).pack('C*').force_encoding('utf-8')
|
|
99
|
+
end
|
|
100
|
+
# rubocop:enable Style/AsciiComments
|
|
101
|
+
|
|
102
|
+
# rubocop:disable Metrics/ParameterLists
|
|
103
|
+
|
|
104
|
+
##
|
|
105
|
+
# Generates sentence
|
|
106
|
+
#
|
|
107
|
+
# @param word_count [Integer] How many words should be there in a sentence, default to 4
|
|
108
|
+
# @param supplemental [Boolean] Add supplemental words, default to false
|
|
109
|
+
# @param random_words_to_add [Integer] Add any random words, default to 0
|
|
110
|
+
#
|
|
111
|
+
# @return [String]
|
|
112
|
+
#
|
|
113
|
+
# @example
|
|
114
|
+
# Faker::Lorem.sentence #=> "Magnam qui aut quidem."
|
|
115
|
+
# Faker::Lorem.sentence(word_count: 5) #=> "Voluptas rerum aut aliquam velit."
|
|
116
|
+
# Faker::Lorem.sentence(word_count: 5, supplemental: true) #=> "Aut viscus curtus votum iusto."
|
|
117
|
+
# Faker::Lorem.sentence(word_count: 5, supplemental: true, random_words_to_add:2) #=> "Crinis quo cruentus velit animi vomer."
|
|
118
|
+
#
|
|
119
|
+
# @faker.version 2.1.3
|
|
120
|
+
def sentence(legacy_word_count = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, legacy_random_words_to_add = NOT_GIVEN, word_count: 4, supplemental: false, random_words_to_add: 0)
|
|
121
|
+
warn_for_deprecated_arguments do |keywords|
|
|
122
|
+
keywords << :word_count if legacy_word_count != NOT_GIVEN
|
|
123
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
|
124
|
+
keywords << :random_words_to_add if legacy_random_words_to_add != NOT_GIVEN
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
words(number: word_count + rand(random_words_to_add.to_i), supplemental: supplemental).join(locale_space).capitalize + locale_period
|
|
128
|
+
end
|
|
129
|
+
# rubocop:enable Metrics/ParameterLists
|
|
130
|
+
|
|
131
|
+
##
|
|
132
|
+
# Generates three sentences
|
|
133
|
+
#
|
|
134
|
+
# @param number [Integer] How many sentences to be generated, default to 3
|
|
135
|
+
# @param supplemental [Boolean] Should add supplemental words, defaults to false
|
|
136
|
+
#
|
|
137
|
+
# @return [Array] Returns array for sentences.
|
|
138
|
+
#
|
|
139
|
+
# @example
|
|
140
|
+
# Faker::Lorem.sentences #=> ["Possimus non tenetur.", "Nulla non excepturi.", "Quisquam rerum facilis."]
|
|
141
|
+
# Faker::Lorem.sentences(number: 2) #=> ["Nulla est natus.", "Perferendis autem cum."]
|
|
142
|
+
# Faker::Lorem.sentences(number: 2, supplemental: true) #=> ["Cito cena ad.", "Solvo animus allatus."]
|
|
143
|
+
#
|
|
144
|
+
# @faker.version 2.1.3
|
|
145
|
+
def sentences(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 3, supplemental: false)
|
|
146
|
+
warn_for_deprecated_arguments do |keywords|
|
|
147
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
|
148
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
1.upto(resolve(number)).collect { sentence(word_count: 3, supplemental: supplemental) }
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
# rubocop:disable Metrics/ParameterLists
|
|
155
|
+
|
|
156
|
+
##
|
|
157
|
+
# Generates three sentence paragraph
|
|
158
|
+
#
|
|
159
|
+
# @param sentence_count [Integer] Number of sentences in the paragraph
|
|
160
|
+
# @param supplemental [Boolean]
|
|
161
|
+
# @param random_sentences_to_add [Integer]
|
|
162
|
+
#
|
|
163
|
+
# @return [String]
|
|
164
|
+
#
|
|
165
|
+
# @example
|
|
166
|
+
# Faker::Lorem.paragraph
|
|
167
|
+
# #=> "Impedit et est. Aliquid deleniti necessitatibus. Et aspernatur minima."
|
|
168
|
+
# Faker::Lorem.paragraph(sentence_count: 2)
|
|
169
|
+
# #=> "Rerum fugit vitae. Et atque autem."
|
|
170
|
+
# Faker::Lorem.paragraph(sentence_count: 2, supplemental: true)
|
|
171
|
+
# #=> "Terreo coerceo utor. Vester sunt cogito."
|
|
172
|
+
# Faker::Lorem.paragraph(sentence_count: 2, supplemental: true, random_sentences_to_add: 2)
|
|
173
|
+
# #=> "Texo tantillus tamisium. Tribuo amissio tamisium. Facere aut canis."
|
|
174
|
+
#
|
|
175
|
+
# @faker.version 2.1.3
|
|
176
|
+
def paragraph(legacy_sentence_count = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, legacy_random_sentences_to_add = NOT_GIVEN, sentence_count: 3, supplemental: false, random_sentences_to_add: 0)
|
|
177
|
+
warn_for_deprecated_arguments do |keywords|
|
|
178
|
+
keywords << :sentence_count if legacy_sentence_count != NOT_GIVEN
|
|
179
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
|
180
|
+
keywords << :random_sentences_to_add if legacy_random_sentences_to_add != NOT_GIVEN
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
sentences(number: resolve(sentence_count) + rand(random_sentences_to_add.to_i), supplemental: supplemental).join(locale_space)
|
|
184
|
+
end
|
|
185
|
+
# rubocop:enable Metrics/ParameterLists
|
|
186
|
+
|
|
187
|
+
##
|
|
188
|
+
# Generates three paragraphs
|
|
189
|
+
#
|
|
190
|
+
# @param number [Integer]
|
|
191
|
+
# @param supplemental [Boolean]
|
|
192
|
+
#
|
|
193
|
+
# @return [Array]
|
|
194
|
+
#
|
|
195
|
+
# @example
|
|
196
|
+
# Faker::Lorem.paragraphs
|
|
197
|
+
# Faker::Lorem.paragraphs(number:2)
|
|
198
|
+
# Faker::Lorem.paragraphs(number:2, supplemental: true)
|
|
199
|
+
#
|
|
200
|
+
# @faker.version 2.1.3
|
|
201
|
+
def paragraphs(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 3, supplemental: false)
|
|
202
|
+
warn_for_deprecated_arguments do |keywords|
|
|
203
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
|
204
|
+
end
|
|
205
|
+
warn_for_deprecated_arguments do |keywords|
|
|
206
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
1.upto(resolve(number)).collect { paragraph(sentence_count: 3, supplemental: supplemental) }
|
|
210
|
+
end
|
|
211
|
+
|
|
212
|
+
##
|
|
213
|
+
# Generates paragraph with 256 characters
|
|
214
|
+
#
|
|
215
|
+
# @param number [Integer]
|
|
216
|
+
# @param supplemental [Boolean]
|
|
217
|
+
#
|
|
218
|
+
# @return [String]
|
|
219
|
+
#
|
|
220
|
+
# @example
|
|
221
|
+
# Faker::Lorem.paragraph_by_chars
|
|
222
|
+
# Faker::Lorem.paragraph_by_chars(number: 20) #=> "Sit modi alias. Imp."
|
|
223
|
+
# Faker::Lorem.paragraph_by_chars(number: 20, supplemental: true) #=> "Certus aveho admove."
|
|
224
|
+
#
|
|
225
|
+
# @faker.version 2.1.3
|
|
226
|
+
def paragraph_by_chars(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 256, supplemental: false)
|
|
227
|
+
warn_for_deprecated_arguments do |keywords|
|
|
228
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
|
229
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
|
230
|
+
end
|
|
231
|
+
|
|
232
|
+
paragraph = paragraph(sentence_count: 3, supplemental: supplemental)
|
|
233
|
+
|
|
234
|
+
paragraph += " #{paragraph(sentence_count: 3, supplemental: supplemental)}" while paragraph.length < number
|
|
235
|
+
|
|
236
|
+
"#{paragraph[0...number - 1]}."
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
# rubocop:disable Metrics/ParameterLists
|
|
240
|
+
|
|
241
|
+
##
|
|
242
|
+
# Returns the question with 4 words
|
|
243
|
+
#
|
|
244
|
+
# @param word_count [Integer]
|
|
245
|
+
# @param supplemental [Boolean]
|
|
246
|
+
# @param random_words_to_add [Integer]
|
|
247
|
+
#
|
|
248
|
+
# @return [String]
|
|
249
|
+
#
|
|
250
|
+
# @example
|
|
251
|
+
# Faker::Lorem.question #=> "Natus deleniti sequi laudantium?"
|
|
252
|
+
# Faker::Lorem.question(word_count: 2) #=> "Quo ut?"
|
|
253
|
+
# Faker::Lorem.question(word_count: 2, supplemental: true) #=> "Terga consequatur?"
|
|
254
|
+
# Faker::Lorem.question(word_count: 2, supplemental: true, random_words_to_add: 2) #=> "Depulso uter ut?"
|
|
255
|
+
#
|
|
256
|
+
# @faker.version 2.1.3
|
|
257
|
+
def question(legacy_word_count = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, legacy_random_words_to_add = NOT_GIVEN, word_count: 4, supplemental: false, random_words_to_add: 0)
|
|
258
|
+
warn_for_deprecated_arguments do |keywords|
|
|
259
|
+
keywords << :word_count if legacy_word_count != NOT_GIVEN
|
|
260
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
|
261
|
+
keywords << :random_words_to_add if legacy_random_words_to_add != NOT_GIVEN
|
|
262
|
+
end
|
|
263
|
+
|
|
264
|
+
words(number: word_count + rand(random_words_to_add), supplemental: supplemental).join(' ').capitalize + locale_question_mark
|
|
265
|
+
end
|
|
266
|
+
# rubocop:enable Metrics/ParameterLists
|
|
267
|
+
|
|
268
|
+
##
|
|
269
|
+
# Generates array of three questions
|
|
270
|
+
#
|
|
271
|
+
# @param number [Integer]
|
|
272
|
+
# @param supplemental [Boolean]
|
|
273
|
+
#
|
|
274
|
+
# @return [Array]
|
|
275
|
+
#
|
|
276
|
+
# @example
|
|
277
|
+
# Faker::Lorem.questions #=> ["Amet culpa enim?", "Voluptatem deleniti numquam?", "Veniam non cum?"]
|
|
278
|
+
# Faker::Lorem.questions(number: 2) #=> ["Minus occaecati nobis?", "Veniam et alias?"]
|
|
279
|
+
# Faker::Lorem.questions(number: 2, supplemental: true) #=> ["Acceptus subito cetera?", "Aro sulum cubicularis?"]
|
|
280
|
+
#
|
|
281
|
+
# @faker.version 2.1.3
|
|
282
|
+
def questions(legacy_number = NOT_GIVEN, legacy_supplemental = NOT_GIVEN, number: 3, supplemental: false)
|
|
283
|
+
warn_for_deprecated_arguments do |keywords|
|
|
284
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
|
285
|
+
keywords << :supplemental if legacy_supplemental != NOT_GIVEN
|
|
286
|
+
end
|
|
287
|
+
|
|
288
|
+
1.upto(resolve(number)).collect { question(word_count: 3, supplemental: supplemental) }
|
|
289
|
+
end
|
|
290
|
+
|
|
291
|
+
private
|
|
292
|
+
|
|
293
|
+
def locale_period
|
|
294
|
+
translate('faker.lorem.punctuation.period') || '.'
|
|
295
|
+
end
|
|
296
|
+
|
|
297
|
+
def locale_space
|
|
298
|
+
translate('faker.lorem.punctuation.space') || ' '
|
|
299
|
+
end
|
|
300
|
+
|
|
301
|
+
def locale_question_mark
|
|
302
|
+
translate('faker.lorem.punctuation.question_mark') || '?'
|
|
303
|
+
end
|
|
304
|
+
end
|
|
305
|
+
end
|
|
306
|
+
end
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class LoremFlickr < Base
|
|
5
|
+
class << self
|
|
6
|
+
SUPPORTED_COLORIZATIONS = %w[red green blue].freeze
|
|
7
|
+
|
|
8
|
+
# rubocop:disable Metrics/ParameterLists
|
|
9
|
+
|
|
10
|
+
##
|
|
11
|
+
# Produces a random image URL from loremflickr.com.
|
|
12
|
+
#
|
|
13
|
+
# @param size [String] Specifies the size of image to generate.
|
|
14
|
+
# @param search_terms [Array<String>] Adds search terms to the image URL.
|
|
15
|
+
# @param match_all [Boolean] Add "all" as part of the URL.
|
|
16
|
+
# @return [String]
|
|
17
|
+
#
|
|
18
|
+
# @example
|
|
19
|
+
# Faker::LoremFlickr.image #=> "https://loremflickr.com/300/300"
|
|
20
|
+
# Faker::LoremFlickr.image(size: "50x60") #=> "https://loremflickr.com/50/60"
|
|
21
|
+
# Faker::LoremFlickr.image(size: "50x60", search_terms: ['sports']) #=> "https://loremflickr.com/50/60/sports"
|
|
22
|
+
# Faker::LoremFlickr.image(size: "50x60", search_terms: ['sports', 'fitness']) #=> "https://loremflickr.com/50/60/sports,fitness"
|
|
23
|
+
# Faker::LoremFlickr.image(size: "50x60", search_terms: ['sports', 'fitness'], match_all: true) #=> "https://loremflickr.com/50/60/sports,fitness/all"
|
|
24
|
+
#
|
|
25
|
+
# @faker.version 1.9.0
|
|
26
|
+
def image(legacy_size = NOT_GIVEN, legacy_search_terms = NOT_GIVEN, legacy_match_all = NOT_GIVEN, size: '300x300', search_terms: [], match_all: false)
|
|
27
|
+
warn_for_deprecated_arguments do |keywords|
|
|
28
|
+
keywords << :size if legacy_size != NOT_GIVEN
|
|
29
|
+
keywords << :search_terms if legacy_search_terms != NOT_GIVEN
|
|
30
|
+
keywords << :match_all if legacy_match_all != NOT_GIVEN
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
build_url(size, nil, search_terms, match_all)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
##
|
|
37
|
+
# Produces a random grayscale image URL from loremflickr.com.
|
|
38
|
+
#
|
|
39
|
+
# @param size [String] Specifies the size of image to generate.
|
|
40
|
+
# @param search_terms [Array<String>] Adds search terms to the image URL.
|
|
41
|
+
# @param match_all [Boolean] Add "all" as part of the URL.
|
|
42
|
+
# @return [String]
|
|
43
|
+
#
|
|
44
|
+
# @example
|
|
45
|
+
# Faker::LoremFlickr.grayscale_image #=> "https://loremflickr.com/g/300/300/all"
|
|
46
|
+
# Faker::LoremFlickr.grayscale_image(size: "50x60") #=> "https://loremflickr.com/g/50/60/all"
|
|
47
|
+
# Faker::LoremFlickr.grayscale_image(size: "50x60", search_terms: ['sports']) #=> "https://loremflickr.com/g/50/60/sports"
|
|
48
|
+
# Faker::LoremFlickr.grayscale_image(size: "50x60", search_terms: ['sports', 'fitness']) #=> "https://loremflickr.com/50/60/g/sports,fitness"
|
|
49
|
+
# Faker::LoremFlickr.grayscale_image(size: "50x60", search_terms: ['sports', 'fitness'], match_all: true) #=> "https://loremflickr.com/g/50/60/sports,fitness/all"
|
|
50
|
+
#
|
|
51
|
+
# @faker.version 1.9.0
|
|
52
|
+
def grayscale_image(legacy_size = NOT_GIVEN, legacy_search_terms = NOT_GIVEN, legacy_match_all = NOT_GIVEN, size: '300x300', search_terms: ['all'], match_all: false)
|
|
53
|
+
warn_for_deprecated_arguments do |keywords|
|
|
54
|
+
keywords << :size if legacy_size != NOT_GIVEN
|
|
55
|
+
keywords << :search_terms if legacy_search_terms != NOT_GIVEN
|
|
56
|
+
keywords << :match_all if legacy_match_all != NOT_GIVEN
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
raise ArgumentError, 'Search terms must be specified for grayscale images' unless search_terms.any?
|
|
60
|
+
|
|
61
|
+
build_url(size, 'g', search_terms, match_all)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
##
|
|
65
|
+
# Produces a random pixelated image URL from loremflickr.com.
|
|
66
|
+
#
|
|
67
|
+
# @param size [String] Specifies the size of image to generate.
|
|
68
|
+
# @param search_terms [Array<String>] Adds search terms to the image URL.
|
|
69
|
+
# @param match_all [Boolean] Add "all" as part of the URL.
|
|
70
|
+
# @return [String]
|
|
71
|
+
#
|
|
72
|
+
# @example
|
|
73
|
+
# Faker::LoremFlickr.pixelated_image #=> "https://loremflickr.com/p/300/300/all"
|
|
74
|
+
# Faker::LoremFlickr.pixelated_image(size: "50x60") #=> "https://loremflickr.com/p/50/60/all"
|
|
75
|
+
# Faker::LoremFlickr.pixelated_image(size: "50x60", search_terms: ['sports']) #=> "https://loremflickr.com/p/50/60/sports"
|
|
76
|
+
# Faker::LoremFlickr.pixelated_image(size: "50x60", search_terms: ['sports', 'fitness']) #=> "https://loremflickr.com/p/50/60/sports,fitness"
|
|
77
|
+
# Faker::LoremFlickr.pixelated_image(size: "50x60", search_terms: ['sports', 'fitness'], match_all: true) #=> "https://loremflickr.com/p/50/60/sports,fitness/all"
|
|
78
|
+
#
|
|
79
|
+
# @faker.version 1.9.0
|
|
80
|
+
def pixelated_image(legacy_size = NOT_GIVEN, legacy_search_terms = NOT_GIVEN, legacy_match_all = NOT_GIVEN, size: '300x300', search_terms: ['all'], match_all: false)
|
|
81
|
+
warn_for_deprecated_arguments do |keywords|
|
|
82
|
+
keywords << :size if legacy_size != NOT_GIVEN
|
|
83
|
+
keywords << :search_terms if legacy_search_terms != NOT_GIVEN
|
|
84
|
+
keywords << :match_all if legacy_match_all != NOT_GIVEN
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
raise ArgumentError, 'Search terms must be specified for pixelated images' unless search_terms.any?
|
|
88
|
+
|
|
89
|
+
build_url(size, 'p', search_terms, match_all)
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
##
|
|
93
|
+
# Produces a random colorized image URL from loremflickr.com.
|
|
94
|
+
#
|
|
95
|
+
# @param size [String] Specifies the size of image to generate.
|
|
96
|
+
# @param color [String] Specifies the color of image to generate.
|
|
97
|
+
# @param search_terms [Array<String>] Adds search terms to the image URL.
|
|
98
|
+
# @param match_all [Boolean] Add "all" as part of the URL.
|
|
99
|
+
# @return [String]
|
|
100
|
+
#
|
|
101
|
+
# @example
|
|
102
|
+
# Faker::LoremFlickr.image #=> "https://loremflickr.com/red/300/300/all"
|
|
103
|
+
# Faker::LoremFlickr.image(size: "50x60", color: 'blue') #=> "https://loremflickr.com/blue/50/60/all"
|
|
104
|
+
# Faker::LoremFlickr.image(size: "50x60", color: 'blue', search_terms: ['sports']) #=> "https://loremflickr.com/blue/50/60/sports"
|
|
105
|
+
# Faker::LoremFlickr.image(size: "50x60", color: 'blue', search_terms: ['sports', 'fitness']) #=> "https://loremflickr.com/blue/50/60/sports,fitness"
|
|
106
|
+
# Faker::LoremFlickr.image(size: "50x60", color: 'blue', search_terms: ['sports', 'fitness'], match_all: true) #=> "https://loremflickr.com/blue/50/60/sports,fitness/all"
|
|
107
|
+
#
|
|
108
|
+
# @faker.version 1.9.0
|
|
109
|
+
def colorized_image(legacy_size = NOT_GIVEN, legacy_color = NOT_GIVEN, legacy_search_terms = NOT_GIVEN, legacy_match_all = NOT_GIVEN, size: '300x300', color: 'red', search_terms: ['all'], match_all: false)
|
|
110
|
+
warn_for_deprecated_arguments do |keywords|
|
|
111
|
+
keywords << :size if legacy_size != NOT_GIVEN
|
|
112
|
+
keywords << :color if legacy_color != NOT_GIVEN
|
|
113
|
+
keywords << :search_terms if legacy_search_terms != NOT_GIVEN
|
|
114
|
+
keywords << :match_all if legacy_match_all != NOT_GIVEN
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
raise ArgumentError, 'Search terms must be specified for colorized images' unless search_terms.any?
|
|
118
|
+
raise ArgumentError, "Supported colorizations are #{SUPPORTED_COLORIZATIONS.join(', ')}" unless SUPPORTED_COLORIZATIONS.include?(color)
|
|
119
|
+
|
|
120
|
+
build_url(size, color, search_terms, match_all)
|
|
121
|
+
end
|
|
122
|
+
# rubocop:enable Metrics/ParameterLists
|
|
123
|
+
|
|
124
|
+
private
|
|
125
|
+
|
|
126
|
+
def build_url(size, format, search_terms, match_all)
|
|
127
|
+
raise ArgumentError, 'Size should be specified in format 300x300' unless size =~ /^[0-9]+x[0-9]+$/
|
|
128
|
+
|
|
129
|
+
url_parts = ['https://loremflickr.com']
|
|
130
|
+
url_parts << format
|
|
131
|
+
url_parts += size.split('x')
|
|
132
|
+
url_parts << search_terms.compact.join(',') if search_terms.any?
|
|
133
|
+
url_parts << 'all' if match_all
|
|
134
|
+
url_parts.compact.join('/')
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
end
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class LoremPixel < Base
|
|
5
|
+
class << self
|
|
6
|
+
SUPPORTED_CATEGORIES = %w[abstract
|
|
7
|
+
animals
|
|
8
|
+
business
|
|
9
|
+
cats
|
|
10
|
+
city
|
|
11
|
+
food
|
|
12
|
+
nightlife
|
|
13
|
+
fashion
|
|
14
|
+
people
|
|
15
|
+
nature
|
|
16
|
+
sports
|
|
17
|
+
technics
|
|
18
|
+
transport].freeze
|
|
19
|
+
|
|
20
|
+
# rubocop:disable Metrics/ParameterLists
|
|
21
|
+
|
|
22
|
+
##
|
|
23
|
+
# Produces a random image URL from lorempixel.com.
|
|
24
|
+
#
|
|
25
|
+
# @param size [String] Specifies the size of image to generate.
|
|
26
|
+
# @param is_gray [Boolean] Determines if the image is gray.
|
|
27
|
+
# @param category [Symbol] Adds the category of the generated image to the URL.
|
|
28
|
+
# @param number [Integer] Adds a number as part of the URL.
|
|
29
|
+
# @param text [Integer] Adds dummy text as part of the URL.
|
|
30
|
+
# @param secure [Boolean] Changes the image URL between http and https.
|
|
31
|
+
# @return [String]
|
|
32
|
+
#
|
|
33
|
+
# @example
|
|
34
|
+
# Faker::LoremPixel.image #=> "https://lorempixel.com/300/300"
|
|
35
|
+
# Faker::LoremPixel.image(size: "50x60") #=> "https://lorempixel.com/50/60"
|
|
36
|
+
# Faker::LoremPixel.image(size: "50x60", is_gray: true) #=> "https://lorempixel.com/g/50/60"
|
|
37
|
+
# Faker::LoremPixel.image(size: "50x60", is_gray: false, category: 'sports') #=> "https://lorempixel.com/50/60/sports"
|
|
38
|
+
# Faker::LoremPixel.image(size: "50x60", is_gray: false, category: 'sports', number: 3) #=> "https://lorempixel.com/50/60/sports/3"
|
|
39
|
+
# Faker::LoremPixel.image(size: "50x60", is_gray: false, category: 'sports', number: 3, text: 'Dummy-text') #=> "https://lorempixel.com/50/60/sports/3/Dummy-text"
|
|
40
|
+
# Faker::LoremPixel.image(size: "50x60", is_gray: false, category: 'sports', number: nil, text: 'Dummy-text') #=> "https://lorempixel.com/50/60/sports/Dummy-text"
|
|
41
|
+
# Faker::LoremPixel.image(secure: false) #=> "http://lorempixel.com/300/300"
|
|
42
|
+
#
|
|
43
|
+
# @faker.version 1.7.0
|
|
44
|
+
def image(legacy_size = NOT_GIVEN, legacy_is_gray = NOT_GIVEN, legacy_category = NOT_GIVEN, legacy_number = NOT_GIVEN, legacy_text = NOT_GIVEN, legacy_secure = NOT_GIVEN, size: '300x300', is_gray: false, category: nil, number: nil, text: nil, secure: true)
|
|
45
|
+
warn_for_deprecated_arguments do |keywords|
|
|
46
|
+
keywords << :size if legacy_size != NOT_GIVEN
|
|
47
|
+
keywords << :is_gray if legacy_is_gray != NOT_GIVEN
|
|
48
|
+
keywords << :category if legacy_category != NOT_GIVEN
|
|
49
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
|
50
|
+
keywords << :text if legacy_text != NOT_GIVEN
|
|
51
|
+
keywords << :secure if legacy_secure != NOT_GIVEN
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
raise ArgumentError, 'Size should be specified in format 300x300' unless size =~ /^[0-9]+x[0-9]+$/
|
|
55
|
+
raise ArgumentError, "Supported categories are #{SUPPORTED_CATEGORIES.join(', ')}" unless category.nil? || SUPPORTED_CATEGORIES.include?(category)
|
|
56
|
+
raise ArgumentError, 'Category required when number is passed' if !number.nil? && category.nil?
|
|
57
|
+
raise ArgumentError, 'Number must be between 1 and 10' unless number.nil? || (1..10).cover?(number)
|
|
58
|
+
raise ArgumentError, 'Category and number must be passed when text is passed' if !text.nil? && number.nil? && category.nil?
|
|
59
|
+
|
|
60
|
+
url_parts = secure ? ['https:/'] : ['http:/']
|
|
61
|
+
url_parts << ['lorempixel.com']
|
|
62
|
+
url_parts << 'g' if is_gray
|
|
63
|
+
url_parts += size.split('x')
|
|
64
|
+
url_parts += [category, number, text].compact
|
|
65
|
+
url_parts.join('/')
|
|
66
|
+
end
|
|
67
|
+
# rubocop:enable Metrics/ParameterLists
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|