faker 2.11.0 → 3.4.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|