faker 2.11.0 → 3.4.2
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 +4 -4
- data/CHANGELOG.md +1131 -19
- data/README.md +249 -105
- data/lib/faker/blockchain/aeternity.rb +5 -5
- data/lib/faker/blockchain/bitcoin.rb +2 -2
- data/lib/faker/blockchain/ethereum.rb +1 -1
- data/lib/faker/blockchain/tezos.rb +31 -3
- data/lib/faker/books/dune.rb +17 -12
- data/lib/faker/books/lovecraft.rb +16 -44
- data/lib/faker/books/the_kingkiller_chronicle.rb +61 -0
- data/lib/faker/creature/bird.rb +203 -0
- data/lib/faker/default/address.rb +42 -32
- data/lib/faker/default/adjective.rb +35 -0
- data/lib/faker/default/alphanumeric.rb +2 -8
- data/lib/faker/default/app.rb +1 -10
- data/lib/faker/default/avatar.rb +1 -12
- data/lib/faker/default/bank.rb +104 -19
- data/lib/faker/default/barcode.rb +165 -0
- data/lib/faker/default/beer.rb +3 -3
- data/lib/faker/default/blood.rb +48 -0
- data/lib/faker/default/boolean.rb +1 -4
- data/lib/faker/default/business.rb +1 -1
- data/lib/faker/default/camera.rb +46 -0
- data/lib/faker/default/cannabis.rb +10 -0
- data/lib/faker/default/chile_rut.rb +62 -18
- data/lib/faker/default/chuck_norris.rb +1 -0
- data/lib/faker/default/code.rb +162 -52
- data/lib/faker/default/color.rb +77 -6
- data/lib/faker/default/commerce.rb +105 -28
- data/lib/faker/default/company.rb +210 -28
- data/lib/faker/default/compass.rb +135 -0
- data/lib/faker/default/computer.rb +63 -0
- data/lib/faker/default/construction.rb +54 -0
- data/lib/faker/default/cosmere.rb +90 -0
- data/lib/faker/default/crypto.rb +26 -4
- data/lib/faker/default/crypto_coin.rb +48 -15
- data/lib/faker/default/date.rb +81 -54
- data/lib/faker/default/demographic.rb +1 -5
- data/lib/faker/default/driving_licence.rb +85 -18
- data/lib/faker/default/drone.rb +332 -0
- data/lib/faker/default/educator.rb +13 -0
- data/lib/faker/default/emotion.rb +33 -0
- data/lib/faker/default/file.rb +53 -21
- data/lib/faker/default/finance.rb +75 -7
- data/lib/faker/default/food.rb +28 -2
- data/lib/faker/default/gender.rb +1 -1
- data/lib/faker/default/hipster.rb +108 -51
- data/lib/faker/default/hobby.rb +22 -0
- data/lib/faker/default/html.rb +230 -0
- data/lib/faker/default/id_number.rb +251 -17
- data/lib/faker/default/internet.rb +361 -113
- data/lib/faker/default/internet_http.rb +48 -0
- data/lib/faker/default/invoice.rb +37 -23
- data/lib/faker/default/json.rb +63 -25
- data/lib/faker/default/lorem.rb +177 -75
- data/lib/faker/default/lorem_flickr.rb +69 -37
- data/lib/faker/default/markdown.rb +97 -11
- data/lib/faker/default/marketing.rb +1 -1
- data/lib/faker/default/measurement.rb +101 -42
- data/lib/faker/default/military.rb +26 -0
- data/lib/faker/default/mountain.rb +33 -0
- data/lib/faker/default/name.rb +99 -5
- data/lib/faker/default/nation.rb +0 -3
- data/lib/faker/default/{nhs.rb → national_health_service.rb} +26 -6
- data/lib/faker/default/number.rb +39 -69
- data/lib/faker/default/omniauth.rb +115 -57
- data/lib/faker/default/phone_number.rb +112 -14
- data/lib/faker/default/placeholdit.rb +23 -12
- data/lib/faker/default/relationship.rb +2 -6
- data/lib/faker/default/religion.rb +6 -0
- data/lib/faker/default/science.rb +108 -0
- data/lib/faker/default/slack_emoji.rb +81 -0
- data/lib/faker/default/source.rb +3 -16
- data/lib/faker/default/south_africa.rb +93 -3
- data/lib/faker/default/space.rb +1 -1
- data/lib/faker/default/string.rb +18 -8
- data/lib/faker/default/stripe.rb +68 -23
- data/lib/faker/default/tea.rb +41 -0
- data/lib/faker/default/theater.rb +52 -0
- data/lib/faker/default/time.rb +4 -34
- data/lib/faker/default/twitter.rb +42 -23
- data/lib/faker/default/types.rb +92 -34
- data/lib/faker/default/university.rb +45 -0
- data/lib/faker/default/vehicle.rb +227 -57
- data/lib/faker/default/verb.rb +45 -0
- data/lib/faker/default/vulnerability_identifier.rb +23 -0
- data/lib/faker/default/world_cup.rb +6 -15
- 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 +178 -0
- data/lib/faker/games/dota.rb +14 -5
- data/lib/faker/games/elder_scrolls.rb +26 -0
- data/lib/faker/games/final_fantasy_xiv.rb +73 -0
- data/lib/faker/games/heroes.rb +13 -0
- data/lib/faker/games/heroes_of_the_storm.rb +16 -5
- data/lib/faker/games/minecraft.rb +113 -0
- data/lib/faker/games/myst.rb +1 -1
- data/lib/faker/games/street_fighter.rb +61 -0
- data/lib/faker/games/super_mario.rb +48 -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 +39 -0
- data/lib/faker/games/world_of_warcraft.rb +26 -1
- 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 +26 -0
- data/lib/faker/japanese_media/fullmetal_alchemist_brotherhood.rb +51 -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 +1 -1
- data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
- data/lib/faker/locations/australia.rb +52 -0
- data/lib/faker/movies/avatar.rb +49 -0
- data/lib/faker/movies/departed.rb +49 -0
- data/lib/faker/movies/hackers.rb +48 -0
- data/lib/faker/movies/hobbit.rb +4 -4
- data/lib/faker/movies/how_to_train_your_dragon.rb +48 -0
- data/lib/faker/movies/lord_of_the_rings.rb +3 -3
- data/lib/faker/movies/movie.rb +13 -0
- data/lib/faker/movies/star_wars.rb +75 -7
- data/lib/faker/movies/the_room.rb +63 -0
- data/lib/faker/movies/tron.rb +161 -0
- data/lib/faker/music/hiphop.rb +48 -0
- data/lib/faker/music/music.rb +12 -0
- data/lib/faker/music/opera.rb +237 -1
- data/lib/faker/music/pearl_jam.rb +50 -0
- data/lib/faker/music/phish.rb +27 -1
- data/lib/faker/music/prince.rb +64 -0
- data/lib/faker/music/rock_band.rb +12 -0
- data/lib/faker/music/rush.rb +37 -0
- data/lib/faker/music/smashing_pumpkins.rb +64 -0
- data/lib/faker/quotes/quote.rb +93 -1
- data/lib/faker/quotes/rajnikanth.rb +1 -0
- data/lib/faker/quotes/shakespeare.rb +70 -0
- data/lib/faker/religion/bible.rb +50 -0
- data/lib/faker/sports/chess.rb +90 -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 +43 -0
- data/lib/faker/travel/train_station.rb +54 -0
- data/lib/faker/tv_shows/aqua_teen_hunger_force.rb +13 -0
- data/lib/faker/tv_shows/archer.rb +51 -0
- data/lib/faker/tv_shows/big_bang_theory.rb +37 -0
- data/lib/faker/tv_shows/brooklyn_nine_nine.rb +38 -0
- data/lib/faker/tv_shows/buffy.rb +17 -4
- data/lib/faker/tv_shows/dr_who.rb +1 -1
- data/lib/faker/tv_shows/final_space.rb +51 -0
- data/lib/faker/tv_shows/futurama.rb +65 -0
- data/lib/faker/tv_shows/michael_scott.rb +0 -3
- data/lib/faker/tv_shows/simpsons.rb +14 -0
- data/lib/faker/tv_shows/south_park.rb +15 -0
- data/lib/faker/tv_shows/spongebob.rb +50 -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_fresh_prince_of_bel_air.rb +17 -4
- data/lib/faker/tv_shows/the_office.rb +37 -0
- data/lib/faker/version.rb +2 -2
- data/lib/faker.rb +51 -87
- data/lib/helpers/base58.rb +1 -1
- data/lib/helpers/char.rb +22 -27
- data/lib/helpers/deprecator.rb +53 -0
- data/lib/helpers/positional_generator.rb +480 -0
- data/lib/helpers/unique_generator.rb +13 -13
- data/lib/locales/README.md +18 -2
- data/lib/locales/ar.yml +6 -1
- data/lib/locales/bg.yml +1 -2
- data/lib/locales/da-DK.yml +529 -35
- data/lib/locales/de-AT.yml +3487 -25
- data/lib/locales/de-CH.yml +6020 -9
- data/lib/locales/de.yml +7185 -97
- data/lib/locales/ee.yml +0 -1
- data/lib/locales/en/address.yml +1828 -562
- data/lib/locales/en/adjective.yml +179 -0
- data/lib/locales/en/airport.yml +381 -0
- data/lib/locales/en/animal.yml +1 -1
- data/lib/locales/en/aqua_teen_hunger_force.yml +33 -1
- data/lib/locales/en/archer.yml +75 -0
- data/lib/locales/en/australia.yml +108 -0
- data/lib/locales/en/avatar.yml +31 -0
- data/lib/locales/en/bank.yml +2 -2
- data/lib/locales/en/barcode.yml +24 -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/book.yml +487 -3
- data/lib/locales/en/brooklyn_nine_nine.yml +35 -0
- data/lib/locales/en/buffy.yml +1 -1
- data/lib/locales/en/camera.yml +611 -0
- data/lib/locales/en/cat.yml +1 -1
- data/lib/locales/en/chess.yml +103 -0
- data/lib/locales/en/clash_of_clan.yml +101 -0
- data/lib/locales/en/coffee.yml +1 -1
- data/lib/locales/en/commerce.yml +17 -0
- data/lib/locales/en/community.yml +17 -17
- data/lib/locales/en/company.yml +3 -2
- data/lib/locales/en/computer.yml +55 -0
- data/lib/locales/en/conan.yml +171 -0
- data/lib/locales/en/control.yml +247 -0
- data/lib/locales/en/cowboy_bebop.yml +163 -0
- data/lib/locales/en/demographic.yml +218 -5
- data/lib/locales/en/departed.yml +50 -0
- data/lib/locales/en/device.yml +112 -4
- data/lib/locales/en/dnd.yml +636 -0
- data/lib/locales/en/dog.yml +262 -7
- data/lib/locales/en/doraemon.yml +286 -0
- data/lib/locales/en/dota.yml +704 -63
- 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/dune.yml +270 -131
- data/lib/locales/en/educator.yml +6 -0
- data/lib/locales/en/elder_scrolls.yml +583 -9
- data/lib/locales/en/emotion.yml +480 -0
- data/lib/locales/en/fallout.yml +311 -133
- data/lib/locales/en/file.yml +9 -1
- data/lib/locales/en/final_fantasy_xiv.yml +754 -0
- data/lib/locales/en/final_space.yml +37 -0
- data/lib/locales/en/finance.yml +80 -4
- data/lib/locales/en/food.yml +1067 -10
- data/lib/locales/en/football.yml +3 -3
- data/lib/locales/en/fresh_prince_of_bel_air.yml +1 -1
- data/lib/locales/en/fullmetal_alchemist_brotherhood.yml +78 -0
- data/lib/locales/en/futurama.yml +344 -0
- data/lib/locales/en/game.yml +11 -0
- data/lib/locales/en/hackers.yml +53 -0
- data/lib/locales/en/half_life.yml +84 -3
- data/lib/locales/en/harry_potter.yml +1 -1
- data/lib/locales/en/heroes.yml +408 -3
- data/lib/locales/en/heroes_of_the_storm.yml +131 -4
- data/lib/locales/en/hobby.yml +171 -0
- data/lib/locales/en/horse.yml +2 -2
- data/lib/locales/en/house.yml +1 -1
- data/lib/locales/en/how_to_train_your_dragon.yml +174 -0
- data/lib/locales/en/id_number.yml +1 -1
- data/lib/locales/en/internet.yml +136 -3
- data/lib/locales/en/jack_handey.yml +54 -0
- data/lib/locales/en/kamen_rider.yml +452 -0
- data/lib/locales/en/kpop.yml +7 -7
- data/lib/locales/en/league_of_legends.yml +285 -6
- data/lib/locales/en/lebowski.yml +1 -1
- data/lib/locales/en/lovecraft.yml +76 -6
- data/lib/locales/en/military.yml +179 -5
- data/lib/locales/en/minecraft.yml +663 -0
- data/lib/locales/en/mitch_hedberg.yml +46 -0
- data/lib/locales/en/mountain.yml +171 -0
- data/lib/locales/en/mountaineering.yml +14 -0
- data/lib/locales/en/movie.yml +194 -2
- data/lib/locales/en/music.yml +461 -29
- data/lib/locales/en/myst.yml +87 -31
- data/lib/locales/en/name.yml +5 -4
- data/lib/locales/en/naruto.yml +230 -0
- data/lib/locales/en/one_piece.yml +2 -2
- data/lib/locales/en/opera.yml +169 -1
- data/lib/locales/en/overwatch.yml +2648 -2622
- data/lib/locales/en/pearl_jam.yml +213 -0
- data/lib/locales/en/phish.yml +392 -1
- data/lib/locales/en/phone_number.yml +78 -3
- data/lib/locales/en/pokemon.yml +417 -4
- data/lib/locales/en/prince.yml +227 -0
- data/lib/locales/en/quote.yml +692 -163
- data/lib/locales/en/rock_band.yml +1 -0
- data/lib/locales/en/rush.yml +32 -0
- data/lib/locales/en/science.yml +481 -3
- data/lib/locales/en/shakespeare.yml +21 -24
- data/lib/locales/en/simpsons.yml +668 -0
- data/lib/locales/en/smashing_pumpkins.yml +382 -0
- data/lib/locales/en/source.yml +35 -0
- data/lib/locales/en/south_park.yml +360 -2
- data/lib/locales/en/space.yml +1 -1
- data/lib/locales/en/spongebob.yml +489 -0
- data/lib/locales/en/sport.yml +130 -0
- data/lib/locales/en/star_trek.yml +1 -1
- data/lib/locales/en/star_wars.yml +568 -220
- data/lib/locales/en/stranger_thing.yml +1 -1
- data/lib/locales/en/street_fighter.yml +1524 -0
- data/lib/locales/en/studio_ghibli.yml +107 -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 +23 -6
- data/lib/locales/en/supernatural.yml +141 -0
- data/lib/locales/en/tarkov.yml +593 -0
- data/lib/locales/en/tea.yml +172 -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_room.yml +68 -0
- data/lib/locales/en/theater.yml +597 -0
- data/lib/locales/en/tolkien.yml +2453 -0
- data/lib/locales/en/touhou.yml +839 -0
- data/lib/locales/en/train_station.yml +280 -0
- data/lib/locales/en/tron.yml +227 -0
- data/lib/locales/en/vehicle.yml +2809 -75
- data/lib/locales/en/volleyball.yml +501 -0
- data/lib/locales/en/warhammer_fantasy.yml +582 -0
- data/lib/locales/en/witcher.yml +426 -7
- data/lib/locales/en/world_of_warcraft.yml +122 -4
- data/lib/locales/en/zelda.yml +962 -4
- data/lib/locales/en-AU.yml +728 -17
- data/lib/locales/en-CA.yml +373 -16
- data/lib/locales/en-GB.yml +116 -8
- data/lib/locales/en-IND.yml +1259 -16
- data/lib/locales/en-KE.yml +212 -0
- data/lib/locales/en-MS.yml +364 -16
- data/lib/locales/en-NEP.yml +212 -35
- data/lib/locales/en-NG.yml +1 -0
- data/lib/locales/en-NZ.yml +1153 -121
- data/lib/locales/en-PAK.yml +369 -9
- data/lib/locales/en-SG.yml +581 -15
- data/lib/locales/en-UG.yml +1 -0
- data/lib/locales/en-US.yml +6937 -71
- data/lib/locales/en-ZA.yml +1 -1
- data/lib/locales/en-au-ocker.yml +266 -21
- data/lib/locales/en.yml +0 -3
- data/lib/locales/es-AR.yml +4570 -0
- data/lib/locales/es-MX.yml +1 -2
- data/lib/locales/es.yml +58 -3
- data/lib/locales/fi-FI.yml +4 -2
- 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 +4 -0
- data/lib/locales/fr/lorem.yml +5 -0
- data/lib/locales/fr/measurement.yml +7 -0
- data/lib/locales/fr/name.yml +22 -0
- data/lib/locales/fr/phone_number.yml +7 -0
- data/lib/locales/fr/pokemon.yml +7 -0
- data/lib/locales/fr-CA.yml +2748 -43
- data/lib/locales/fr-CH.yml +3 -4
- data/lib/locales/fr.yml +2 -112
- data/lib/locales/hy.yml +3624 -119
- data/lib/locales/id.yml +839 -10
- data/lib/locales/it.yml +1304 -31
- 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/football.yml +115 -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/sport.yml +130 -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/touhou.yml +466 -0
- data/lib/locales/ja/university.yml +9 -0
- data/lib/locales/ja/zelda.yml +5 -0
- data/lib/locales/ko.yml +1450 -17
- data/lib/locales/lt.yml +315 -0
- data/lib/locales/lv.yml +1 -2
- data/lib/locales/mi-NZ.yml +283 -0
- data/lib/locales/nb-NO.yml +518 -27
- data/lib/locales/nl.yml +1 -1
- data/lib/locales/pl.yml +1 -2
- data/lib/locales/pt-BR.yml +8157 -659
- data/lib/locales/pt.yml +844 -43
- data/lib/locales/ru.yml +1355 -30
- data/lib/locales/sk.yml +4410 -41
- data/lib/locales/sv.yml +100 -0
- data/lib/locales/th.yml +76 -76
- data/lib/locales/tr.yml +1 -2
- data/lib/locales/uk.yml +1810 -44
- data/lib/locales/vi.yml +1 -0
- data/lib/locales/zh-CN/bank.yml +17 -0
- data/lib/locales/zh-CN.yml +1 -0
- data/lib/locales/zh-TW.yml +1 -0
- metadata +192 -127
- data/History.md +0 -176
- data/lib/faker/default/fillmurray.rb +0 -45
- data/lib/faker/default/lorem_pixel.rb +0 -47
- data/lib/locales/en/hobbit.yml +0 -19
- data/lib/locales/en/lord_of_the_rings.yml +0 -6
- data/lib/locales/ja.yml +0 -101
data/lib/faker/default/number.rb
CHANGED
|
@@ -13,11 +13,7 @@ module Faker
|
|
|
13
13
|
# Faker::Number.number(digits: 10) #=> 1968353479
|
|
14
14
|
#
|
|
15
15
|
# @faker.version 1.0.0
|
|
16
|
-
def number(
|
|
17
|
-
warn_for_deprecated_arguments do |keywords|
|
|
18
|
-
keywords << :digits if legacy_digits != NOT_GIVEN
|
|
19
|
-
end
|
|
20
|
-
|
|
16
|
+
def number(digits: 10)
|
|
21
17
|
return if digits < 1
|
|
22
18
|
return rand(0..9).round if digits == 1
|
|
23
19
|
|
|
@@ -35,12 +31,8 @@ module Faker
|
|
|
35
31
|
# Faker::Number.leading_zero_number(digits: 10) #=> "0669336915"
|
|
36
32
|
#
|
|
37
33
|
# @faker.version 1.0.0
|
|
38
|
-
def leading_zero_number(
|
|
39
|
-
|
|
40
|
-
keywords << :digits if legacy_digits != NOT_GIVEN
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
'0' + (2..digits).collect { digit }.join
|
|
34
|
+
def leading_zero_number(digits: 10)
|
|
35
|
+
"0#{(2..digits).collect { digit }.join}"
|
|
44
36
|
end
|
|
45
37
|
|
|
46
38
|
##
|
|
@@ -53,11 +45,7 @@ module Faker
|
|
|
53
45
|
# Faker::Number.decimal_part(digits: 2) #=> "09"
|
|
54
46
|
#
|
|
55
47
|
# @faker.version 1.0.0
|
|
56
|
-
def decimal_part(
|
|
57
|
-
warn_for_deprecated_arguments do |keywords|
|
|
58
|
-
keywords << :digits if legacy_digits != NOT_GIVEN
|
|
59
|
-
end
|
|
60
|
-
|
|
48
|
+
def decimal_part(digits: 10)
|
|
61
49
|
num = ''
|
|
62
50
|
if digits > 1
|
|
63
51
|
num = non_zero_digit
|
|
@@ -78,20 +66,13 @@ module Faker
|
|
|
78
66
|
# Faker::Number.decimal(l_digits: 3, r_digits: 3) #=> 181.843
|
|
79
67
|
#
|
|
80
68
|
# @faker.version 1.0.0
|
|
81
|
-
def decimal(
|
|
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
|
-
|
|
69
|
+
def decimal(l_digits: 5, r_digits: 2)
|
|
87
70
|
l_d = number(digits: l_digits)
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
generate(r_digits - 1).join + non_zero_digit.to_s
|
|
94
|
-
end
|
|
71
|
+
|
|
72
|
+
# Ensure the last digit is not zero
|
|
73
|
+
# so it does not get truncated on converting to float
|
|
74
|
+
r_d = generate(r_digits - 1).join + non_zero_digit.to_s
|
|
75
|
+
|
|
95
76
|
"#{l_d}.#{r_d}".to_f
|
|
96
77
|
end
|
|
97
78
|
|
|
@@ -131,33 +112,39 @@ module Faker
|
|
|
131
112
|
# Faker::Number.hexadecimal(digits: 3) #=> "e74"
|
|
132
113
|
#
|
|
133
114
|
# @faker.version 1.0.0
|
|
134
|
-
def hexadecimal(
|
|
135
|
-
warn_for_deprecated_arguments do |keywords|
|
|
136
|
-
keywords << :digits if legacy_digits != NOT_GIVEN
|
|
137
|
-
end
|
|
138
|
-
|
|
115
|
+
def hexadecimal(digits: 6)
|
|
139
116
|
hex = ''
|
|
140
|
-
digits.times { hex += rand(
|
|
117
|
+
digits.times { hex += rand(16).to_s(16) }
|
|
141
118
|
hex
|
|
142
119
|
end
|
|
143
120
|
|
|
121
|
+
# Produces a number in binary format.
|
|
122
|
+
#
|
|
123
|
+
# @param digits [Integer] Number of digits to generate the binary as string
|
|
124
|
+
# @return [String]
|
|
125
|
+
#
|
|
126
|
+
# @example
|
|
127
|
+
# Faker::Number.binary(digits: 4) #=> "1001"
|
|
128
|
+
#
|
|
129
|
+
# @faker.version next
|
|
130
|
+
def binary(digits: 4)
|
|
131
|
+
bin = ''
|
|
132
|
+
digits.times { bin += rand(2).to_s(2) }
|
|
133
|
+
bin
|
|
134
|
+
end
|
|
135
|
+
|
|
144
136
|
##
|
|
145
137
|
# Produces a float given a mean and standard deviation.
|
|
146
138
|
#
|
|
147
139
|
# @param mean [Integer]
|
|
148
|
-
# @param standard_deviation [
|
|
140
|
+
# @param standard_deviation [Numeric]
|
|
149
141
|
# @return [Float]
|
|
150
142
|
#
|
|
151
143
|
# @example
|
|
152
144
|
# Faker::Number.normal(mean: 50, standard_deviation: 3.5) #=> 47.14669604069156
|
|
153
145
|
#
|
|
154
146
|
# @faker.version 1.0.0
|
|
155
|
-
def normal(
|
|
156
|
-
warn_for_deprecated_arguments do |keywords|
|
|
157
|
-
keywords << :mean if legacy_mean != NOT_GIVEN
|
|
158
|
-
keywords << :standard_deviation if legacy_standard_deviation != NOT_GIVEN
|
|
159
|
-
end
|
|
160
|
-
|
|
147
|
+
def normal(mean: 1, standard_deviation: 1)
|
|
161
148
|
theta = 2 * Math::PI * rand
|
|
162
149
|
rho = Math.sqrt(-2 * Math.log(1 - rand))
|
|
163
150
|
scale = standard_deviation * rho
|
|
@@ -167,20 +154,16 @@ module Faker
|
|
|
167
154
|
##
|
|
168
155
|
# Produces a number between two provided values. Boundaries are inclusive.
|
|
169
156
|
#
|
|
170
|
-
# @param from [
|
|
171
|
-
# @param to [
|
|
172
|
-
# @return [
|
|
157
|
+
# @param from [Numeric] The lowest number to include.
|
|
158
|
+
# @param to [Numeric] The highest number to include.
|
|
159
|
+
# @return [Numeric]
|
|
173
160
|
#
|
|
174
161
|
# @example
|
|
175
162
|
# Faker::Number.between(from: 1, to: 10) #=> 7
|
|
163
|
+
# Faker::Number.between(from: 0.0, to: 1.0) #=> 0.7844640543957383
|
|
176
164
|
#
|
|
177
165
|
# @faker.version 1.0.0
|
|
178
|
-
def between(
|
|
179
|
-
warn_for_deprecated_arguments do |keywords|
|
|
180
|
-
keywords << :from if legacy_from != NOT_GIVEN
|
|
181
|
-
keywords << :to if legacy_to != NOT_GIVEN
|
|
182
|
-
end
|
|
183
|
-
|
|
166
|
+
def between(from: 1.00, to: 5000.00)
|
|
184
167
|
Faker::Base.rand_in_range(from, to)
|
|
185
168
|
end
|
|
186
169
|
|
|
@@ -188,17 +171,14 @@ module Faker
|
|
|
188
171
|
# Produces a number within two provided values. Boundaries are inclusive or exclusive depending on the range passed.
|
|
189
172
|
#
|
|
190
173
|
# @param range [Range] The range from which to generate a number.
|
|
191
|
-
# @return [
|
|
174
|
+
# @return [Numeric]
|
|
192
175
|
#
|
|
193
176
|
# @example
|
|
194
177
|
# Faker::Number.within(range: 1..10) #=> 7
|
|
178
|
+
# Faker::Number.within(range: 0.0..1.0) #=> 0.7844640543957383
|
|
195
179
|
#
|
|
196
180
|
# @faker.version 1.0.0
|
|
197
|
-
def within(
|
|
198
|
-
warn_for_deprecated_arguments do |keywords|
|
|
199
|
-
keywords << :range if legacy_range != NOT_GIVEN
|
|
200
|
-
end
|
|
201
|
-
|
|
181
|
+
def within(range: 1.00..5000.00)
|
|
202
182
|
between(from: range.min, to: range.max)
|
|
203
183
|
end
|
|
204
184
|
|
|
@@ -213,12 +193,7 @@ module Faker
|
|
|
213
193
|
# Faker::Number.positive #=> 235.59238499107653
|
|
214
194
|
#
|
|
215
195
|
# @faker.version 1.0.0
|
|
216
|
-
def positive(
|
|
217
|
-
warn_for_deprecated_arguments do |keywords|
|
|
218
|
-
keywords << :from if legacy_from != NOT_GIVEN
|
|
219
|
-
keywords << :to if legacy_to != NOT_GIVEN
|
|
220
|
-
end
|
|
221
|
-
|
|
196
|
+
def positive(from: 1.00, to: 5000.00)
|
|
222
197
|
random_number = between(from: from, to: to)
|
|
223
198
|
|
|
224
199
|
greater_than_zero(random_number)
|
|
@@ -235,12 +210,7 @@ module Faker
|
|
|
235
210
|
# Faker::Number.negative #=> -4480.042585669558
|
|
236
211
|
#
|
|
237
212
|
# @faker.version 1.0.0
|
|
238
|
-
def negative(
|
|
239
|
-
warn_for_deprecated_arguments do |keywords|
|
|
240
|
-
keywords << :from if legacy_from != NOT_GIVEN
|
|
241
|
-
keywords << :to if legacy_to != NOT_GIVEN
|
|
242
|
-
end
|
|
243
|
-
|
|
213
|
+
def negative(from: -5000.00, to: -1.00)
|
|
244
214
|
random_number = between(from: from, to: to)
|
|
245
215
|
|
|
246
216
|
less_than_zero(random_number)
|
|
@@ -9,21 +9,25 @@ module Faker
|
|
|
9
9
|
:email
|
|
10
10
|
|
|
11
11
|
def initialize(name: nil, email: nil)
|
|
12
|
+
super()
|
|
13
|
+
|
|
12
14
|
@name = name || "#{Name.first_name} #{Name.last_name}"
|
|
13
|
-
@email = email || Internet.
|
|
15
|
+
@email = email || Internet.email(name: self.name)
|
|
14
16
|
@first_name, @last_name = self.name.split
|
|
15
17
|
end
|
|
16
18
|
|
|
17
19
|
class << self
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
##
|
|
21
|
+
# Generate a mock Omniauth response from Google.
|
|
22
|
+
#
|
|
23
|
+
# @param name [String] A specific name to return in the response.
|
|
24
|
+
# @param email [String] A specific email to return in the response.
|
|
25
|
+
# @param uid [String] A specific UID to return in the response.
|
|
26
|
+
#
|
|
27
|
+
# @return [Hash] An auth hash in the format provided by omniauth-google.
|
|
28
|
+
#
|
|
29
|
+
# @faker.version 1.8.0
|
|
30
|
+
def google(name: nil, email: nil, uid: Number.number(digits: 9).to_s)
|
|
27
31
|
auth = Omniauth.new(name: name, email: email)
|
|
28
32
|
{
|
|
29
33
|
provider: 'google_oauth2',
|
|
@@ -53,7 +57,7 @@ module Faker
|
|
|
53
57
|
picture: image,
|
|
54
58
|
gender: gender,
|
|
55
59
|
birthday: Date.backward(days: 36_400).strftime('%Y-%m-%d'),
|
|
56
|
-
|
|
60
|
+
locale: 'en',
|
|
57
61
|
hd: "#{Company.name.downcase}.com"
|
|
58
62
|
},
|
|
59
63
|
id_info: {
|
|
@@ -72,16 +76,18 @@ module Faker
|
|
|
72
76
|
}
|
|
73
77
|
end
|
|
74
78
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
79
|
+
##
|
|
80
|
+
# Generate a mock Omniauth response from Facebook.
|
|
81
|
+
#
|
|
82
|
+
# @param name [String] A specific name to return in the response.
|
|
83
|
+
# @param email [String] A specific email to return in the response.
|
|
84
|
+
# @param username [String] A specific username to return in the response.
|
|
85
|
+
# @param uid [String] A specific UID to return in the response.
|
|
86
|
+
#
|
|
87
|
+
# @return [Hash] An auth hash in the format provided by omniauth-facebook.
|
|
88
|
+
#
|
|
89
|
+
# @faker.version 1.8.0
|
|
90
|
+
def facebook(name: nil, email: nil, username: nil, uid: Number.number(digits: 7).to_s)
|
|
85
91
|
auth = Omniauth.new(name: name, email: email)
|
|
86
92
|
username ||= "#{auth.first_name.downcase[0]}#{auth.last_name.downcase}"
|
|
87
93
|
{
|
|
@@ -123,15 +129,17 @@ module Faker
|
|
|
123
129
|
}
|
|
124
130
|
end
|
|
125
131
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
132
|
+
##
|
|
133
|
+
# Generate a mock Omniauth response from Twitter.
|
|
134
|
+
#
|
|
135
|
+
# @param name [String] A specific name to return in the response.
|
|
136
|
+
# @param nickname [String] A specific nickname to return in the response.
|
|
137
|
+
# @param uid [String] A specific UID to return in the response.
|
|
138
|
+
#
|
|
139
|
+
# @return [Hash] An auth hash in the format provided by omniauth-twitter.
|
|
140
|
+
#
|
|
141
|
+
# @faker.version 1.8.0
|
|
142
|
+
def twitter(name: nil, nickname: nil, uid: Number.number(digits: 6).to_s)
|
|
135
143
|
auth = Omniauth.new(name: name)
|
|
136
144
|
nickname ||= auth.name.downcase.delete(' ')
|
|
137
145
|
location = city_state
|
|
@@ -204,15 +212,17 @@ module Faker
|
|
|
204
212
|
}
|
|
205
213
|
end
|
|
206
214
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
215
|
+
##
|
|
216
|
+
# Generate a mock Omniauth response from LinkedIn.
|
|
217
|
+
#
|
|
218
|
+
# @param name [String] A specific name to return in the response.
|
|
219
|
+
# @param email [String] A specific email to return in the response.
|
|
220
|
+
# @param uid [String] A specific UID to return in the response.
|
|
221
|
+
#
|
|
222
|
+
# @return [Hash] An auth hash in the format provided by omniauth-linkedin.
|
|
223
|
+
#
|
|
224
|
+
# @faker.version 1.8.0
|
|
225
|
+
def linkedin(name: nil, email: nil, uid: Number.number(digits: 6).to_s)
|
|
216
226
|
auth = Omniauth.new(name: name, email: email)
|
|
217
227
|
first_name = auth.first_name.downcase
|
|
218
228
|
last_name = auth.last_name.downcase
|
|
@@ -275,15 +285,17 @@ module Faker
|
|
|
275
285
|
}
|
|
276
286
|
end
|
|
277
287
|
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
288
|
+
##
|
|
289
|
+
# Generate a mock Omniauth response from Github.
|
|
290
|
+
#
|
|
291
|
+
# @param name [String] A specific name to return in the response.
|
|
292
|
+
# @param email [String] A specific email to return in the response.
|
|
293
|
+
# @param uid [String] A specific UID to return in the response.
|
|
294
|
+
#
|
|
295
|
+
# @return [Hash] An auth hash in the format provided by omniauth-github.
|
|
296
|
+
#
|
|
297
|
+
# @faker.version 1.8.0
|
|
298
|
+
def github(name: nil, email: nil, uid: Number.number(digits: 8).to_s)
|
|
287
299
|
auth = Omniauth.new(name: name, email: email)
|
|
288
300
|
login = auth.name.downcase.tr(' ', '-')
|
|
289
301
|
html_url = "https://github.com/#{login}"
|
|
@@ -342,13 +354,15 @@ module Faker
|
|
|
342
354
|
end
|
|
343
355
|
|
|
344
356
|
##
|
|
345
|
-
# Generate a mock Omniauth response from Apple
|
|
357
|
+
# Generate a mock Omniauth response from Apple.
|
|
358
|
+
#
|
|
359
|
+
# @param name [String] A specific name to return in the response.
|
|
360
|
+
# @param email [String] A specific email to return in the response.
|
|
361
|
+
# @param uid [String] A specific UID to return in the response.
|
|
346
362
|
#
|
|
347
|
-
# @
|
|
348
|
-
# @param email [String] A specific email to return in the response
|
|
349
|
-
# @param uid [String] A specific UID to return in the response
|
|
363
|
+
# @return [Hash] An auth hash in the format provided by omniauth-apple.
|
|
350
364
|
#
|
|
351
|
-
# @
|
|
365
|
+
# @faker.version 2.3.0
|
|
352
366
|
def apple(name: nil, email: nil, uid: nil)
|
|
353
367
|
uid ||= "#{Number.number(digits: 6)}.#{Number.hexadecimal(digits: 32)}.#{Number.number(digits: 4)}"
|
|
354
368
|
auth = Omniauth.new(name: name, email: email)
|
|
@@ -383,14 +397,58 @@ module Faker
|
|
|
383
397
|
}
|
|
384
398
|
end
|
|
385
399
|
|
|
400
|
+
##
|
|
401
|
+
# Generate a mock Omniauth response from Auth0.
|
|
402
|
+
#
|
|
403
|
+
# @param name [String] A specific name to return in the response.
|
|
404
|
+
# @param email [String] A specific email to return in the response.
|
|
405
|
+
# @param uid [String] A specific UID to return in the response.
|
|
406
|
+
#
|
|
407
|
+
# @return [Hash] An auth hash in the format provided by omniauth-auth0.
|
|
408
|
+
#
|
|
409
|
+
# @faker.version next
|
|
410
|
+
def auth0(name: nil, email: nil, uid: nil)
|
|
411
|
+
uid ||= "auth0|#{Number.hexadecimal(digits: 24)}"
|
|
412
|
+
auth = Omniauth.new(name: name, email: email)
|
|
413
|
+
{
|
|
414
|
+
provider: 'auth0',
|
|
415
|
+
uid: uid,
|
|
416
|
+
info: {
|
|
417
|
+
name: uid,
|
|
418
|
+
nickname: auth.name,
|
|
419
|
+
email: auth.email,
|
|
420
|
+
image: image
|
|
421
|
+
},
|
|
422
|
+
credentials: {
|
|
423
|
+
expires_at: Time.forward.to_i,
|
|
424
|
+
expires: true,
|
|
425
|
+
token_type: 'Bearer',
|
|
426
|
+
id_token: Crypto.sha256,
|
|
427
|
+
token: Crypto.md5,
|
|
428
|
+
refresh_token: Crypto.md5
|
|
429
|
+
},
|
|
430
|
+
extra: {
|
|
431
|
+
raw_info: {
|
|
432
|
+
email: auth.email,
|
|
433
|
+
email_verified: true,
|
|
434
|
+
iss: 'https://auth0.com/',
|
|
435
|
+
sub: uid,
|
|
436
|
+
aud: 'Auth012345',
|
|
437
|
+
iat: Time.forward.to_i,
|
|
438
|
+
exp: Time.forward.to_i
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
end
|
|
443
|
+
|
|
386
444
|
private
|
|
387
445
|
|
|
388
446
|
def gender
|
|
389
|
-
|
|
447
|
+
sample(%w[male female])
|
|
390
448
|
end
|
|
391
449
|
|
|
392
450
|
def timezone
|
|
393
|
-
|
|
451
|
+
sample((-12..12).to_a)
|
|
394
452
|
end
|
|
395
453
|
|
|
396
454
|
def image
|
|
@@ -402,11 +460,11 @@ module Faker
|
|
|
402
460
|
end
|
|
403
461
|
|
|
404
462
|
def random_number_from_range(range)
|
|
405
|
-
|
|
463
|
+
sample(range.to_a)
|
|
406
464
|
end
|
|
407
465
|
|
|
408
466
|
def random_boolean
|
|
409
|
-
|
|
467
|
+
sample([true, false])
|
|
410
468
|
end
|
|
411
469
|
end
|
|
412
470
|
end
|
|
@@ -3,49 +3,147 @@
|
|
|
3
3
|
module Faker
|
|
4
4
|
class PhoneNumber < Base
|
|
5
5
|
class << self
|
|
6
|
+
##
|
|
7
|
+
# Produces a phone number in a random format without the country code and it can have different dividers.
|
|
8
|
+
#
|
|
9
|
+
# @return [String]
|
|
10
|
+
#
|
|
11
|
+
# @example
|
|
12
|
+
# Faker::PhoneNumber.phone_number #=> "(504) 113-1705"
|
|
13
|
+
# Faker::PhoneNumber.phone_number #=> "662.291.7201"
|
|
14
|
+
# Faker::PhoneNumber.phone_number #=> "9415283713"
|
|
15
|
+
#
|
|
16
|
+
# @faker.version 0.3.0
|
|
6
17
|
def phone_number
|
|
7
18
|
parse('phone_number.formats')
|
|
8
19
|
end
|
|
9
20
|
|
|
21
|
+
##
|
|
22
|
+
# Produces a random cell phone number in a random format without the country code and it can have different dividers.
|
|
23
|
+
#
|
|
24
|
+
# @return [String]
|
|
25
|
+
#
|
|
26
|
+
# @example
|
|
27
|
+
# Faker::PhoneNumber.cell_phone #=> "(836) 115-8995"
|
|
28
|
+
# Faker::PhoneNumber.cell_phone #=> "382-597-5739"
|
|
29
|
+
# Faker::PhoneNumber.cell_phone #=> "316.828.1822"
|
|
30
|
+
#
|
|
31
|
+
# @faker.version 1.0.0
|
|
10
32
|
def cell_phone
|
|
11
33
|
parse('cell_phone.formats')
|
|
12
34
|
end
|
|
13
35
|
|
|
36
|
+
##
|
|
37
|
+
# Produces a random country code.
|
|
38
|
+
#
|
|
39
|
+
# @return [String]
|
|
40
|
+
#
|
|
41
|
+
# @example
|
|
42
|
+
# Faker::PhoneNumber.country_code #=> "+20"
|
|
43
|
+
# Faker::PhoneNumber.country_code #=> "+39"
|
|
44
|
+
# Faker::PhoneNumber.country_code #=> "+852"
|
|
45
|
+
#
|
|
46
|
+
# @faker.version 1.9.2
|
|
14
47
|
def country_code
|
|
15
|
-
"+#{fetch('country_code')}"
|
|
48
|
+
"+#{fetch('phone_number.country_code')}"
|
|
16
49
|
end
|
|
17
50
|
|
|
51
|
+
##
|
|
52
|
+
# Produces a random phone number with country code.
|
|
53
|
+
#
|
|
54
|
+
# @return [String]
|
|
55
|
+
#
|
|
56
|
+
# @example
|
|
57
|
+
# Faker::PhoneNumber.phone_number_with_country_code #=> "+55 466-746-6882"
|
|
58
|
+
# Faker::PhoneNumber.phone_number_with_country_code #=> "+81 3718219558"
|
|
59
|
+
# Faker::PhoneNumber.phone_number_with_country_code #=> "+49 140 957 9846"
|
|
60
|
+
#
|
|
61
|
+
# @faker.version 1.9.2
|
|
18
62
|
def phone_number_with_country_code
|
|
19
63
|
"#{country_code} #{phone_number}"
|
|
20
64
|
end
|
|
21
65
|
|
|
66
|
+
##
|
|
67
|
+
# Produces a random cell phone number with country code.
|
|
68
|
+
#
|
|
69
|
+
# @return [String]
|
|
70
|
+
#
|
|
71
|
+
# @example
|
|
72
|
+
# Faker::PhoneNumber.cell_phone_with_country_code #=> "+852 (190) 987-9034"
|
|
73
|
+
# Faker::PhoneNumber.cell_phone_with_country_code #=> "+64 (820) 583-6474"
|
|
74
|
+
# Faker::PhoneNumber.cell_phone_with_country_code #=> "+1 591.871.7985"
|
|
75
|
+
#
|
|
76
|
+
# @faker.version 1.9.2
|
|
22
77
|
def cell_phone_with_country_code
|
|
23
78
|
"#{country_code} #{cell_phone}"
|
|
24
79
|
end
|
|
25
80
|
|
|
26
|
-
|
|
81
|
+
##
|
|
82
|
+
# Produces a random phone number in e164 format, i.e., without any dividers.
|
|
83
|
+
#
|
|
84
|
+
# @return [String]
|
|
85
|
+
#
|
|
86
|
+
# @example
|
|
87
|
+
# Faker::PhoneNumber.cell_phone_in_e164 #=> "+542024834991"
|
|
88
|
+
# Faker::PhoneNumber.cell_phone_in_e164 #=> "+8522846847703"
|
|
89
|
+
# Faker::PhoneNumber.cell_phone_in_e164 #=> "+649477546575"
|
|
90
|
+
#
|
|
91
|
+
# @faker.version 1.9.2
|
|
92
|
+
def cell_phone_in_e164
|
|
93
|
+
cell_phone_with_country_code.delete('^+0-9')
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
##
|
|
97
|
+
# Produces a random area code.
|
|
98
|
+
#
|
|
99
|
+
# @return [String]
|
|
100
|
+
#
|
|
101
|
+
# @example
|
|
102
|
+
# Faker::PhoneNumber.area_code #=> "201"
|
|
103
|
+
# Faker::PhoneNumber.area_code #=> "613"
|
|
104
|
+
# Faker::PhoneNumber.area_code #=> "321"
|
|
105
|
+
#
|
|
106
|
+
# @faker.version 1.3.0
|
|
27
107
|
def area_code
|
|
28
108
|
fetch('phone_number.area_code')
|
|
29
|
-
rescue I18n::MissingTranslationData
|
|
30
|
-
nil
|
|
31
109
|
end
|
|
32
110
|
|
|
33
|
-
|
|
111
|
+
##
|
|
112
|
+
# Produces a random exchange code.
|
|
113
|
+
#
|
|
114
|
+
# @return [String]
|
|
115
|
+
#
|
|
116
|
+
# @example
|
|
117
|
+
# Faker::PhoneNumber.exchange_code #=> "208"
|
|
118
|
+
# Faker::PhoneNumber.exchange_code #=> "415"
|
|
119
|
+
# Faker::PhoneNumber.exchange_code #=> "652"
|
|
120
|
+
#
|
|
121
|
+
# @faker.version 1.3.0
|
|
34
122
|
def exchange_code
|
|
35
123
|
fetch('phone_number.exchange_code')
|
|
36
|
-
rescue I18n::MissingTranslationData
|
|
37
|
-
nil
|
|
38
124
|
end
|
|
39
125
|
|
|
40
|
-
|
|
41
|
-
# Can be used for both extensions and last four digits of phone number.
|
|
42
|
-
#
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
126
|
+
##
|
|
127
|
+
# Produces a random extension / subscriber number. Can be used for both extensions and last four digits of phone number.
|
|
128
|
+
#
|
|
129
|
+
# @param length [Integer] Specifies the length of the return value. Defaults to 4.
|
|
130
|
+
# @return [String]
|
|
131
|
+
#
|
|
132
|
+
# @example
|
|
133
|
+
# Faker::PhoneNumber.subscriber_number #=> "3873"
|
|
134
|
+
# Faker::PhoneNumber.subscriber_number(length: 2) #=> "39"
|
|
135
|
+
# Faker::PhoneNumber.extension #=> "3764"
|
|
136
|
+
# Faker::PhoneNumber.extension(length: 2) => "37"
|
|
137
|
+
#
|
|
138
|
+
# @faker.version 1.3.0
|
|
139
|
+
def subscriber_number(length: 4)
|
|
140
|
+
if !length.is_a?(Integer) || length > 10
|
|
141
|
+
raise ArgumentError, 'length must be an Integer and be lesser than 10'
|
|
46
142
|
end
|
|
47
143
|
|
|
48
|
-
|
|
144
|
+
generate(:string) do |g|
|
|
145
|
+
g.int(length: length)
|
|
146
|
+
end
|
|
49
147
|
end
|
|
50
148
|
|
|
51
149
|
alias extension subscriber_number
|
|
@@ -5,17 +5,28 @@ module Faker
|
|
|
5
5
|
class << self
|
|
6
6
|
SUPPORTED_FORMATS = %w[png jpg gif jpeg].freeze
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
8
|
+
##
|
|
9
|
+
# Produces a random placeholder image from https://via.placeholder.com.
|
|
10
|
+
#
|
|
11
|
+
# @param size [String] Specifies the image's size, dimensions separated by 'x'.
|
|
12
|
+
# @param format [String] Specifies the image's extension.
|
|
13
|
+
# @param background_color [String, Symbol] Specifies the background color, either in hexadecimal format (without #) or as :random.
|
|
14
|
+
# @param text_color [String, Symbol] Specifies the text color, either in hexadecimal format (without #) or as :random.
|
|
15
|
+
# @param text [String] Specifies a custom text to be used.
|
|
16
|
+
# @return [String]
|
|
17
|
+
#
|
|
18
|
+
# @example
|
|
19
|
+
# # Keyword arguments: size, format, background_color, text_color, text
|
|
20
|
+
# Faker::Placeholdit.image #=> "https://via.placeholder.com/300x300.png"
|
|
21
|
+
# Faker::Placeholdit.image(size: '50x50') #=> "https://via.placeholder.com/50x50.png"
|
|
22
|
+
# Faker::Placeholdit.image(size: '50x50', format: 'jpg') #=> "https://via.placeholder.com/50x50.jpg"
|
|
23
|
+
# Faker::Placeholdit.image(size: '50x50', format: 'gif', background_color: 'ffffff') #=> "https://via.placeholder.com/50x50.gif/ffffff"
|
|
24
|
+
# Faker::Placeholdit.image(size: '50x50', format: 'jpeg', background_color: :random) #=> "https://via.placeholder.com/50x50.jpeg/39eba7"
|
|
25
|
+
# Faker::Placeholdit.image(size: '50x50', format: 'jpeg', background_color: 'ffffff', text_color: '000') #=> "https://via.placeholder.com/50x50.jpeg/ffffff/000"
|
|
26
|
+
# Faker::Placeholdit.image(size: '50x50', format: 'jpg', background_color: 'ffffff', text_color: '000', text: 'Some Custom Text') #=> "https://via.placeholder.com/50x50.jpg/ffffff/000?text=Some Custom Text"
|
|
27
|
+
#
|
|
28
|
+
# @faker.version 1.6.0
|
|
29
|
+
def image(size: '300x300', format: 'png', background_color: nil, text_color: nil, text: nil)
|
|
19
30
|
background_color = generate_color if background_color == :random
|
|
20
31
|
text_color = generate_color if text_color == :random
|
|
21
32
|
|
|
@@ -24,7 +35,7 @@ module Faker
|
|
|
24
35
|
raise ArgumentError, "background_color must be a hex value without '#'" unless background_color.nil? || background_color =~ /((?:^\h{3}$)|(?:^\h{6}$)){1}(?!.*\H)/
|
|
25
36
|
raise ArgumentError, "text_color must be a hex value without '#'" unless text_color.nil? || text_color =~ /((?:^\h{3}$)|(?:^\h{6}$)){1}(?!.*\H)/
|
|
26
37
|
|
|
27
|
-
image_url = "https://
|
|
38
|
+
image_url = "https://via.placeholder.com/#{size}.#{format}"
|
|
28
39
|
image_url += "/#{background_color}" if background_color
|
|
29
40
|
image_url += "/#{text_color}" if text_color
|
|
30
41
|
image_url += "?text=#{text}" if text
|