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,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class Mountain < Base
|
|
5
|
+
class << self
|
|
6
|
+
##
|
|
7
|
+
# Produces a name of a mountain
|
|
8
|
+
#
|
|
9
|
+
# @return [String]
|
|
10
|
+
#
|
|
11
|
+
# @example
|
|
12
|
+
# Faker::Mountain.name #=> "Mount Everest"
|
|
13
|
+
#
|
|
14
|
+
# @faker.version next
|
|
15
|
+
def name
|
|
16
|
+
fetch('mountain.name')
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
##
|
|
20
|
+
# Produces a name of a range
|
|
21
|
+
#
|
|
22
|
+
# @return [String]
|
|
23
|
+
#
|
|
24
|
+
# @example
|
|
25
|
+
# Faker::Mountain.range #=> "Dhaulagiri Himalaya"
|
|
26
|
+
#
|
|
27
|
+
# @faker.version next
|
|
28
|
+
def range
|
|
29
|
+
fetch('mountain.range')
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class Name < Base
|
|
5
|
+
flexible :name
|
|
6
|
+
|
|
7
|
+
class << self
|
|
8
|
+
##
|
|
9
|
+
# Produces a random name.
|
|
10
|
+
#
|
|
11
|
+
# @return [String]
|
|
12
|
+
#
|
|
13
|
+
# @example
|
|
14
|
+
# Faker::Name.name #=> "Tyshawn Johns Sr."
|
|
15
|
+
#
|
|
16
|
+
# @faker.version 0.9.0
|
|
17
|
+
def name
|
|
18
|
+
parse('name.name')
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
##
|
|
22
|
+
# Produces a random name with middle name.
|
|
23
|
+
#
|
|
24
|
+
# @return [String]
|
|
25
|
+
#
|
|
26
|
+
# @example
|
|
27
|
+
# Faker::Name.name_with_middle #=> "Aditya Elton Douglas"
|
|
28
|
+
#
|
|
29
|
+
# @faker.version 1.6.4
|
|
30
|
+
def name_with_middle
|
|
31
|
+
parse('name.name_with_middle')
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
##
|
|
35
|
+
# Produces a random first name.
|
|
36
|
+
#
|
|
37
|
+
# @return [String]
|
|
38
|
+
#
|
|
39
|
+
# @example
|
|
40
|
+
# Faker::Name.first_name #=> "Kaci"
|
|
41
|
+
#
|
|
42
|
+
# @faker.version 0.9.0
|
|
43
|
+
def first_name
|
|
44
|
+
if parse('name.first_name').empty?
|
|
45
|
+
fetch('name.first_name')
|
|
46
|
+
else
|
|
47
|
+
parse('name.first_name')
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
##
|
|
52
|
+
# Produces a random male first name.
|
|
53
|
+
#
|
|
54
|
+
# @return [String]
|
|
55
|
+
#
|
|
56
|
+
# @example
|
|
57
|
+
# Faker::Name.male_first_name #=> "Edward"
|
|
58
|
+
#
|
|
59
|
+
# @faker.version 1.9.1
|
|
60
|
+
def male_first_name
|
|
61
|
+
fetch('name.male_first_name')
|
|
62
|
+
end
|
|
63
|
+
alias first_name_men male_first_name
|
|
64
|
+
alias masculine_name male_first_name
|
|
65
|
+
|
|
66
|
+
##
|
|
67
|
+
# Produces a random female first name.
|
|
68
|
+
#
|
|
69
|
+
# @return [String]
|
|
70
|
+
#
|
|
71
|
+
# @example
|
|
72
|
+
# Faker::Name.female_first_name #=> "Natasha"
|
|
73
|
+
#
|
|
74
|
+
# @faker.version 1.9.1
|
|
75
|
+
def female_first_name
|
|
76
|
+
fetch('name.female_first_name')
|
|
77
|
+
end
|
|
78
|
+
alias first_name_women female_first_name
|
|
79
|
+
alias feminine_name female_first_name
|
|
80
|
+
|
|
81
|
+
##
|
|
82
|
+
# Produces a random gender neutral first name.
|
|
83
|
+
#
|
|
84
|
+
# @return [String]
|
|
85
|
+
#
|
|
86
|
+
# @example
|
|
87
|
+
# Faker::Name.neutral_first_name #=> "Casey"
|
|
88
|
+
#
|
|
89
|
+
# @faker.version 2.13.0
|
|
90
|
+
def neutral_first_name
|
|
91
|
+
fetch('name.neutral_first_name')
|
|
92
|
+
end
|
|
93
|
+
alias first_name_neutral neutral_first_name
|
|
94
|
+
alias gender_neutral_first_name neutral_first_name
|
|
95
|
+
|
|
96
|
+
##
|
|
97
|
+
# Produces a random last name.
|
|
98
|
+
#
|
|
99
|
+
# @return [String]
|
|
100
|
+
#
|
|
101
|
+
# @example
|
|
102
|
+
# Faker::Name.last_name #=> "Ernser"
|
|
103
|
+
#
|
|
104
|
+
# @faker.version 0.9.0
|
|
105
|
+
def last_name
|
|
106
|
+
parse('name.last_name')
|
|
107
|
+
end
|
|
108
|
+
alias middle_name last_name
|
|
109
|
+
|
|
110
|
+
##
|
|
111
|
+
# Produces a random name prefix.
|
|
112
|
+
#
|
|
113
|
+
# @return [String]
|
|
114
|
+
#
|
|
115
|
+
# @example
|
|
116
|
+
# Faker::Name.prefix #=> "Mr."
|
|
117
|
+
#
|
|
118
|
+
# @faker.version 0.9.0
|
|
119
|
+
def prefix
|
|
120
|
+
fetch('name.prefix')
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
##
|
|
124
|
+
# Produces a random name suffix.
|
|
125
|
+
#
|
|
126
|
+
# @return [String]
|
|
127
|
+
#
|
|
128
|
+
# @example
|
|
129
|
+
# Faker::Name.suffix #=> "IV"
|
|
130
|
+
#
|
|
131
|
+
# @faker.version 0.9.0
|
|
132
|
+
def suffix
|
|
133
|
+
fetch('name.suffix')
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
##
|
|
137
|
+
# Produces random initials.
|
|
138
|
+
#
|
|
139
|
+
# @param number [Integer] Number of digits that the generated initials should have.
|
|
140
|
+
# @return [String]
|
|
141
|
+
#
|
|
142
|
+
# @example
|
|
143
|
+
# Faker::Name.initials #=> "NJM"
|
|
144
|
+
# Faker::Name.initials(number: 2) #=> "NM"
|
|
145
|
+
#
|
|
146
|
+
# @faker.version 1.8.5
|
|
147
|
+
def initials(legacy_number = NOT_GIVEN, number: 3)
|
|
148
|
+
warn_for_deprecated_arguments do |keywords|
|
|
149
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
(0...number).map { rand(65..90).chr }.join
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
end
|
|
156
|
+
end
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class Nation < Base
|
|
5
|
+
flexible :nation
|
|
6
|
+
class << self
|
|
7
|
+
##
|
|
8
|
+
# Produces a random nationality.
|
|
9
|
+
#
|
|
10
|
+
# @return [String]
|
|
11
|
+
#
|
|
12
|
+
# @example
|
|
13
|
+
# Faker::Nation.nationality #=> "Nepalese"
|
|
14
|
+
#
|
|
15
|
+
# @faker.version 1.9.0
|
|
16
|
+
def nationality
|
|
17
|
+
fetch('nation.nationality')
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# rubocop:disable Style/AsciiComments
|
|
21
|
+
|
|
22
|
+
##
|
|
23
|
+
# Produces a random national flag emoji.
|
|
24
|
+
#
|
|
25
|
+
# @return [String]
|
|
26
|
+
#
|
|
27
|
+
# @example
|
|
28
|
+
# Faker::Nation.flag #=> "🇫🇮"
|
|
29
|
+
#
|
|
30
|
+
# @faker.version 1.9.0
|
|
31
|
+
def flag
|
|
32
|
+
sample(translate('faker.nation.flag')).pack('C*').force_encoding('utf-8')
|
|
33
|
+
end
|
|
34
|
+
# rubocop:enable Style/AsciiComments
|
|
35
|
+
|
|
36
|
+
##
|
|
37
|
+
# Produces a random national language.
|
|
38
|
+
#
|
|
39
|
+
# @return [String]
|
|
40
|
+
#
|
|
41
|
+
# @example
|
|
42
|
+
# Faker::Nation.language #=> "Nepali"
|
|
43
|
+
#
|
|
44
|
+
# @faker.version 1.9.0
|
|
45
|
+
def language
|
|
46
|
+
fetch('nation.language')
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
##
|
|
50
|
+
# Produces a random capital city.
|
|
51
|
+
#
|
|
52
|
+
# @return [String]
|
|
53
|
+
#
|
|
54
|
+
# @example
|
|
55
|
+
# Faker::Nation.capital_city #=> "Kathmandu"
|
|
56
|
+
#
|
|
57
|
+
# @faker.version 1.9.0
|
|
58
|
+
def capital_city
|
|
59
|
+
fetch('nation.capital_city')
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
##
|
|
63
|
+
# Produces a random national sport.
|
|
64
|
+
#
|
|
65
|
+
# @return [String]
|
|
66
|
+
#
|
|
67
|
+
# @example
|
|
68
|
+
# Faker::Nation.national_sport #=> "dandi biyo"
|
|
69
|
+
#
|
|
70
|
+
# @faker.version 1.9.0
|
|
71
|
+
def national_sport
|
|
72
|
+
fetch('team.sport')
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class NatoPhoneticAlphabet < Base
|
|
5
|
+
class << self
|
|
6
|
+
##
|
|
7
|
+
# Produces a code word from the NATO phonetic alphabet.
|
|
8
|
+
#
|
|
9
|
+
# @return [String]
|
|
10
|
+
#
|
|
11
|
+
# @example
|
|
12
|
+
# Faker::NatoPhoneticAlphabet.code_word #=> "Hotel"
|
|
13
|
+
#
|
|
14
|
+
# @faker.version 1.9.0
|
|
15
|
+
def code_word
|
|
16
|
+
fetch('nato_phonetic_alphabet.code_word')
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class NationalHealthService < Base
|
|
5
|
+
class << self
|
|
6
|
+
##
|
|
7
|
+
# Produces a random British NHS number.
|
|
8
|
+
#
|
|
9
|
+
# @return [String]
|
|
10
|
+
#
|
|
11
|
+
# @example
|
|
12
|
+
# Faker::NationalHealthService.british_number #=> "403 958 5577"
|
|
13
|
+
#
|
|
14
|
+
# @faker.version 1.9.2
|
|
15
|
+
def british_number
|
|
16
|
+
base_number = rand(400_000_001...499_999_999)
|
|
17
|
+
# If the check digit is equivalent to 10, the number is invalid.
|
|
18
|
+
# See https://en.wikipedia.org/wiki/NHS_number
|
|
19
|
+
base_number -= 1 if check_digit(number: base_number) == 10
|
|
20
|
+
"#{base_number}#{check_digit(number: base_number)}".to_s
|
|
21
|
+
.chars
|
|
22
|
+
.insert(3, ' ')
|
|
23
|
+
.insert(7, ' ')
|
|
24
|
+
.join('')
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
##
|
|
28
|
+
# Produces a random British NHS number's check digit.
|
|
29
|
+
#
|
|
30
|
+
# @param number [Integer] Specifies the NHS number the check digit belongs to.
|
|
31
|
+
# @return [Integer]
|
|
32
|
+
#
|
|
33
|
+
# @example
|
|
34
|
+
# Faker::NationalHealthService.check_digit(number: 400_012_114) #=> 6
|
|
35
|
+
#
|
|
36
|
+
# @faker.version 1.9.2
|
|
37
|
+
def check_digit(legacy_number = NOT_GIVEN, number: 0)
|
|
38
|
+
warn_for_deprecated_arguments do |keywords|
|
|
39
|
+
keywords << :number if legacy_number != NOT_GIVEN
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
sum = 0
|
|
43
|
+
number.to_s.chars.each_with_index do |digit, idx|
|
|
44
|
+
position = idx + 1
|
|
45
|
+
sum += (digit.to_i * (11 - position))
|
|
46
|
+
end
|
|
47
|
+
result = 11 - (sum % 11)
|
|
48
|
+
|
|
49
|
+
# A value of 11 is considered the same as 0
|
|
50
|
+
# See https://en.wikipedia.org/wiki/NHS_number
|
|
51
|
+
return 0 if result == 11
|
|
52
|
+
|
|
53
|
+
result
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class Number < Base
|
|
5
|
+
class << self
|
|
6
|
+
##
|
|
7
|
+
# Produce a random number.
|
|
8
|
+
#
|
|
9
|
+
# @param digits [Integer] Number of digits that the generated number should have.
|
|
10
|
+
# @return [Integer]
|
|
11
|
+
#
|
|
12
|
+
# @example
|
|
13
|
+
# Faker::Number.number(digits: 10) #=> 1968353479
|
|
14
|
+
#
|
|
15
|
+
# @faker.version 1.0.0
|
|
16
|
+
def number(legacy_digits = NOT_GIVEN, digits: 10)
|
|
17
|
+
warn_for_deprecated_arguments do |keywords|
|
|
18
|
+
keywords << :digits if legacy_digits != NOT_GIVEN
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
return if digits < 1
|
|
22
|
+
return rand(0..9).round if digits == 1
|
|
23
|
+
|
|
24
|
+
# Ensure the first digit is not zero
|
|
25
|
+
([non_zero_digit] + generate(digits - 1)).join.to_i
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
##
|
|
29
|
+
# Produce a random number with a leading zero.
|
|
30
|
+
#
|
|
31
|
+
# @param digits [Integer] Number of digits that the generated number should have.
|
|
32
|
+
# @return [String]
|
|
33
|
+
#
|
|
34
|
+
# @example
|
|
35
|
+
# Faker::Number.leading_zero_number(digits: 10) #=> "0669336915"
|
|
36
|
+
#
|
|
37
|
+
# @faker.version 1.0.0
|
|
38
|
+
def leading_zero_number(legacy_digits = NOT_GIVEN, digits: 10)
|
|
39
|
+
warn_for_deprecated_arguments do |keywords|
|
|
40
|
+
keywords << :digits if legacy_digits != NOT_GIVEN
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
"0#{(2..digits).collect { digit }.join}"
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
##
|
|
47
|
+
# Produce a number with a number of digits, preserves leading zeroes.
|
|
48
|
+
#
|
|
49
|
+
# @param digits [Integer] Number of digits that the generated number should have.
|
|
50
|
+
# @return [String]
|
|
51
|
+
#
|
|
52
|
+
# @example
|
|
53
|
+
# Faker::Number.decimal_part(digits: 2) #=> "09"
|
|
54
|
+
#
|
|
55
|
+
# @faker.version 1.0.0
|
|
56
|
+
def decimal_part(legacy_digits = NOT_GIVEN, digits: 10)
|
|
57
|
+
warn_for_deprecated_arguments do |keywords|
|
|
58
|
+
keywords << :digits if legacy_digits != NOT_GIVEN
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
num = ''
|
|
62
|
+
if digits > 1
|
|
63
|
+
num = non_zero_digit
|
|
64
|
+
digits -= 1
|
|
65
|
+
end
|
|
66
|
+
leading_zero_number(digits: digits) + num.to_s
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
##
|
|
70
|
+
# Produces a float.
|
|
71
|
+
#
|
|
72
|
+
# @param l_digits [Integer] Number of digits that the generated decimal should have to the left of the decimal point.
|
|
73
|
+
# @param r_digits [Integer] Number of digits that the generated decimal should have to the right of the decimal point.
|
|
74
|
+
# @return [Float]
|
|
75
|
+
#
|
|
76
|
+
# @example
|
|
77
|
+
# Faker::Number.decimal(l_digits: 2) #=> 11.88
|
|
78
|
+
# Faker::Number.decimal(l_digits: 3, r_digits: 3) #=> 181.843
|
|
79
|
+
#
|
|
80
|
+
# @faker.version 1.0.0
|
|
81
|
+
def decimal(legacy_l_digits = NOT_GIVEN, legacy_r_digits = NOT_GIVEN, l_digits: 5, r_digits: 2)
|
|
82
|
+
warn_for_deprecated_arguments do |keywords|
|
|
83
|
+
keywords << :l_digits if legacy_l_digits != NOT_GIVEN
|
|
84
|
+
keywords << :r_digits if legacy_r_digits != NOT_GIVEN
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
l_d = number(digits: l_digits)
|
|
88
|
+
|
|
89
|
+
# Ensure the last digit is not zero
|
|
90
|
+
# so it does not get truncated on converting to float
|
|
91
|
+
r_d = generate(r_digits - 1).join + non_zero_digit.to_s
|
|
92
|
+
|
|
93
|
+
"#{l_d}.#{r_d}".to_f
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
##
|
|
97
|
+
# Produces a non-zero single-digit integer.
|
|
98
|
+
#
|
|
99
|
+
# @return [Integer]
|
|
100
|
+
#
|
|
101
|
+
# @example
|
|
102
|
+
# Faker::Number.non_zero_digit #=> 8
|
|
103
|
+
#
|
|
104
|
+
# @faker.version 1.0.0
|
|
105
|
+
def non_zero_digit
|
|
106
|
+
rand(1..9)
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
##
|
|
110
|
+
# Produces a single-digit integer.
|
|
111
|
+
#
|
|
112
|
+
# @return [Integer]
|
|
113
|
+
#
|
|
114
|
+
# @example
|
|
115
|
+
# Faker::Number.digit #=> 1
|
|
116
|
+
#
|
|
117
|
+
# @faker.version 1.0.0
|
|
118
|
+
def digit
|
|
119
|
+
rand(10)
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
##
|
|
123
|
+
# Produces a number in hexadecimal format.
|
|
124
|
+
#
|
|
125
|
+
# @param digits [Integer] Number of digits in the he
|
|
126
|
+
# @return [String]
|
|
127
|
+
#
|
|
128
|
+
# @example
|
|
129
|
+
# Faker::Number.hexadecimal(digits: 3) #=> "e74"
|
|
130
|
+
#
|
|
131
|
+
# @faker.version 1.0.0
|
|
132
|
+
def hexadecimal(legacy_digits = NOT_GIVEN, digits: 6)
|
|
133
|
+
warn_for_deprecated_arguments do |keywords|
|
|
134
|
+
keywords << :digits if legacy_digits != NOT_GIVEN
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
hex = ''
|
|
138
|
+
digits.times { hex += rand(15).to_s(16) }
|
|
139
|
+
hex
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
# Produces a number in binary format.
|
|
143
|
+
#
|
|
144
|
+
# @param digits [Integer] Number of digits to generate the binary as string
|
|
145
|
+
# @return [String]
|
|
146
|
+
#
|
|
147
|
+
# @example
|
|
148
|
+
# Faker::Number.binary(digits: 4) #=> "1001"
|
|
149
|
+
#
|
|
150
|
+
# @faker.version next
|
|
151
|
+
def binary(digits: 4)
|
|
152
|
+
bin = ''
|
|
153
|
+
digits.times { bin += rand(2).to_s(2) }
|
|
154
|
+
bin
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
##
|
|
158
|
+
# Produces a float given a mean and standard deviation.
|
|
159
|
+
#
|
|
160
|
+
# @param mean [Integer]
|
|
161
|
+
# @param standard_deviation [Numeric]
|
|
162
|
+
# @return [Float]
|
|
163
|
+
#
|
|
164
|
+
# @example
|
|
165
|
+
# Faker::Number.normal(mean: 50, standard_deviation: 3.5) #=> 47.14669604069156
|
|
166
|
+
#
|
|
167
|
+
# @faker.version 1.0.0
|
|
168
|
+
def normal(legacy_mean = NOT_GIVEN, legacy_standard_deviation = NOT_GIVEN, mean: 1, standard_deviation: 1)
|
|
169
|
+
warn_for_deprecated_arguments do |keywords|
|
|
170
|
+
keywords << :mean if legacy_mean != NOT_GIVEN
|
|
171
|
+
keywords << :standard_deviation if legacy_standard_deviation != NOT_GIVEN
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
theta = 2 * Math::PI * rand
|
|
175
|
+
rho = Math.sqrt(-2 * Math.log(1 - rand))
|
|
176
|
+
scale = standard_deviation * rho
|
|
177
|
+
mean + scale * Math.cos(theta)
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
##
|
|
181
|
+
# Produces a number between two provided values. Boundaries are inclusive.
|
|
182
|
+
#
|
|
183
|
+
# @param from [Numeric] The lowest number to include.
|
|
184
|
+
# @param to [Numeric] The highest number to include.
|
|
185
|
+
# @return [Numeric]
|
|
186
|
+
#
|
|
187
|
+
# @example
|
|
188
|
+
# Faker::Number.between(from: 1, to: 10) #=> 7
|
|
189
|
+
# Faker::Number.between(from: 0.0, to: 1.0) #=> 0.7844640543957383
|
|
190
|
+
#
|
|
191
|
+
# @faker.version 1.0.0
|
|
192
|
+
def between(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: 1.00, to: 5000.00)
|
|
193
|
+
warn_for_deprecated_arguments do |keywords|
|
|
194
|
+
keywords << :from if legacy_from != NOT_GIVEN
|
|
195
|
+
keywords << :to if legacy_to != NOT_GIVEN
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
Faker::Base.rand_in_range(from, to)
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
##
|
|
202
|
+
# Produces a number within two provided values. Boundaries are inclusive or exclusive depending on the range passed.
|
|
203
|
+
#
|
|
204
|
+
# @param range [Range] The range from which to generate a number.
|
|
205
|
+
# @return [Numeric]
|
|
206
|
+
#
|
|
207
|
+
# @example
|
|
208
|
+
# Faker::Number.within(range: 1..10) #=> 7
|
|
209
|
+
# Faker::Number.within(range: 0.0..1.0) #=> 0.7844640543957383
|
|
210
|
+
#
|
|
211
|
+
# @faker.version 1.0.0
|
|
212
|
+
def within(legacy_range = NOT_GIVEN, range: 1.00..5000.00)
|
|
213
|
+
warn_for_deprecated_arguments do |keywords|
|
|
214
|
+
keywords << :range if legacy_range != NOT_GIVEN
|
|
215
|
+
end
|
|
216
|
+
|
|
217
|
+
between(from: range.min, to: range.max)
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
##
|
|
221
|
+
# Produces a positive float.
|
|
222
|
+
#
|
|
223
|
+
# @param from [Integer] The lower boundary.
|
|
224
|
+
# @param to [Integer] The higher boundary.
|
|
225
|
+
# @return [Float]
|
|
226
|
+
#
|
|
227
|
+
# @example
|
|
228
|
+
# Faker::Number.positive #=> 235.59238499107653
|
|
229
|
+
#
|
|
230
|
+
# @faker.version 1.0.0
|
|
231
|
+
def positive(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: 1.00, to: 5000.00)
|
|
232
|
+
warn_for_deprecated_arguments do |keywords|
|
|
233
|
+
keywords << :from if legacy_from != NOT_GIVEN
|
|
234
|
+
keywords << :to if legacy_to != NOT_GIVEN
|
|
235
|
+
end
|
|
236
|
+
|
|
237
|
+
random_number = between(from: from, to: to)
|
|
238
|
+
|
|
239
|
+
greater_than_zero(random_number)
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
##
|
|
243
|
+
# Produces a negative float.
|
|
244
|
+
#
|
|
245
|
+
# @param from [Integer] The lower boundary.
|
|
246
|
+
# @param to [Integer] The higher boundary.
|
|
247
|
+
# @return [Float]
|
|
248
|
+
#
|
|
249
|
+
# @example
|
|
250
|
+
# Faker::Number.negative #=> -4480.042585669558
|
|
251
|
+
#
|
|
252
|
+
# @faker.version 1.0.0
|
|
253
|
+
def negative(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: -5000.00, to: -1.00)
|
|
254
|
+
warn_for_deprecated_arguments do |keywords|
|
|
255
|
+
keywords << :from if legacy_from != NOT_GIVEN
|
|
256
|
+
keywords << :to if legacy_to != NOT_GIVEN
|
|
257
|
+
end
|
|
258
|
+
|
|
259
|
+
random_number = between(from: from, to: to)
|
|
260
|
+
|
|
261
|
+
less_than_zero(random_number)
|
|
262
|
+
end
|
|
263
|
+
|
|
264
|
+
private
|
|
265
|
+
|
|
266
|
+
def generate(count)
|
|
267
|
+
return [] if count.zero?
|
|
268
|
+
|
|
269
|
+
Array.new(count) { digit }
|
|
270
|
+
end
|
|
271
|
+
|
|
272
|
+
def greater_than_zero(number)
|
|
273
|
+
should_be(number, :>)
|
|
274
|
+
end
|
|
275
|
+
|
|
276
|
+
def less_than_zero(number)
|
|
277
|
+
should_be(number, :<)
|
|
278
|
+
end
|
|
279
|
+
|
|
280
|
+
def should_be(number, method_to_compare)
|
|
281
|
+
if number.send(method_to_compare, 0)
|
|
282
|
+
number
|
|
283
|
+
else
|
|
284
|
+
number * -1
|
|
285
|
+
end
|
|
286
|
+
end
|
|
287
|
+
end
|
|
288
|
+
end
|
|
289
|
+
end
|