faker 2.11.0 → 3.2.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 +4 -4
- data/CHANGELOG.md +810 -19
- data/History.md +5 -5
- data/README.md +232 -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 +14 -41
- data/lib/faker/books/the_kingkiller_chronicle.rb +61 -0
- data/lib/faker/creature/bird.rb +203 -0
- data/lib/faker/default/address.rb +40 -30
- 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 +54 -16
- data/lib/faker/default/chuck_norris.rb +1 -0
- data/lib/faker/default/code.rb +106 -38
- data/lib/faker/default/color.rb +77 -6
- data/lib/faker/default/commerce.rb +105 -28
- data/lib/faker/default/company.rb +116 -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 +17 -4
- data/lib/faker/default/crypto_coin.rb +48 -15
- data/lib/faker/default/date.rb +21 -50
- data/lib/faker/default/demographic.rb +1 -5
- data/lib/faker/default/driving_licence.rb +66 -10
- 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 +106 -48
- data/lib/faker/default/hobby.rb +22 -0
- data/lib/faker/default/id_number.rb +230 -13
- data/lib/faker/default/internet.rb +390 -108
- data/lib/faker/default/internet_http.rb +48 -0
- data/lib/faker/default/invoice.rb +37 -23
- data/lib/faker/default/json.rb +61 -23
- data/lib/faker/default/lorem.rb +171 -72
- 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 +21 -6
- data/lib/faker/default/number.rb +38 -68
- data/lib/faker/default/omniauth.rb +111 -53
- data/lib/faker/default/phone_number.rb +89 -10
- 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 +90 -0
- 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/time.rb +4 -34
- data/lib/faker/default/twitter.rb +42 -23
- data/lib/faker/default/types.rb +88 -29
- data/lib/faker/default/university.rb +45 -0
- data/lib/faker/default/vehicle.rb +212 -54
- 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/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 +48 -0
- data/lib/faker/japanese_media/kamen_rider.rb +102 -0
- data/lib/faker/japanese_media/naruto.rb +61 -0
- data/lib/faker/japanese_media/one_piece.rb +1 -1
- data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
- data/lib/faker/locations/australia.rb +47 -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/room.rb +63 -0
- data/lib/faker/movies/star_wars.rb +75 -7
- 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/show.rb +49 -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/tv_shows/aqua_teen_hunger_force.rb +13 -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/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 +40 -84
- data/lib/helpers/base58.rb +1 -1
- data/lib/helpers/char.rb +22 -27
- data/lib/helpers/unique_generator.rb +13 -13
- data/lib/locales/ar.yml +6 -1
- data/lib/locales/bg.yml +1 -1
- data/lib/locales/da-DK.yml +1 -1
- data/lib/locales/de-AT.yml +7 -6
- data/lib/locales/de-CH.yml +1697 -2
- data/lib/locales/de.yml +12 -6
- data/lib/locales/en/address.yml +4 -3
- 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/australia.yml +107 -0
- data/lib/locales/en/avatar.yml +31 -0
- data/lib/locales/en/bank.yml +1 -1
- 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/doraemon.yml +286 -0
- data/lib/locales/en/dota.yml +651 -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_space.yml +37 -0
- data/lib/locales/en/finance.yml +77 -1
- data/lib/locales/en/fma_brotherhood.yml +78 -0
- data/lib/locales/en/food.yml +1066 -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/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/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/internet.yml +140 -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/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/room.yml +68 -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/show.yml +597 -0
- data/lib/locales/en/simpsons.yml +668 -0
- data/lib/locales/en/source.yml +35 -0
- 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/tolkien.yml +2453 -0
- data/lib/locales/en/touhou.yml +839 -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 +50 -10
- data/lib/locales/en-CA.yml +4 -1
- data/lib/locales/en-GB.yml +3 -2
- data/lib/locales/en-IND.yml +2 -1
- data/lib/locales/en-MS.yml +3 -1
- data/lib/locales/en-NEP.yml +4 -1
- data/lib/locales/en-NG.yml +1 -0
- data/lib/locales/en-NZ.yml +4 -1
- data/lib/locales/en-PAK.yml +3 -1
- data/lib/locales/en-SG.yml +3 -1
- data/lib/locales/en-UG.yml +1 -0
- data/lib/locales/en-US.yml +38 -12
- data/lib/locales/en-ZA.yml +1 -1
- data/lib/locales/en-au-ocker.yml +4 -1
- data/lib/locales/en.yml +0 -3
- data/lib/locales/es-AR.yml +4601 -0
- data/lib/locales/es-MX.yml +1 -1
- data/lib/locales/es.yml +58 -2
- 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 +5 -0
- data/lib/locales/fr/lorem.yml +5 -0
- data/lib/locales/fr/measurement.yml +7 -0
- data/lib/locales/fr/name.yml +21 -0
- data/lib/locales/fr/phone_number.yml +7 -0
- data/lib/locales/fr/pokemon.yml +7 -0
- data/lib/locales/fr-CA.yml +22 -6
- data/lib/locales/fr-CH.yml +3 -3
- data/lib/locales/fr.yml +1 -113
- data/lib/locales/hy.yml +2 -1
- data/lib/locales/id.yml +3 -1
- data/lib/locales/it.yml +3 -1
- data/lib/locales/ja/README.md +13 -0
- data/lib/locales/ja/address.yml +120539 -0
- data/lib/locales/ja/adjective.yml +148 -0
- data/lib/locales/ja/ancient.yml +4 -0
- data/lib/locales/ja/animal.yml +5 -0
- data/lib/locales/ja/bank.yml +4 -0
- data/lib/locales/ja/book.yml +7 -0
- data/lib/locales/ja/cat.yml +5 -0
- data/lib/locales/ja/coffee.yml +4 -0
- data/lib/locales/ja/color.yml +4 -0
- data/lib/locales/ja/commerce.yml +11 -0
- data/lib/locales/ja/company.yml +8 -0
- data/lib/locales/ja/dog.yml +6 -0
- data/lib/locales/ja/emotion.yml +51 -0
- data/lib/locales/ja/food.yml +4 -0
- data/lib/locales/ja/gender.yml +4 -0
- data/lib/locales/ja/lorem.yml +9 -0
- data/lib/locales/ja/name.yml +13 -0
- data/lib/locales/ja/naruto.yml +230 -0
- data/lib/locales/ja/overwatch.yml +5 -0
- data/lib/locales/ja/phone_number.yml +7 -0
- data/lib/locales/ja/pokemon.yml +7 -0
- data/lib/locales/ja/relationship.yml +10 -0
- data/lib/locales/ja/restaurant.yml +11 -0
- data/lib/locales/ja/space.yml +5 -0
- data/lib/locales/ja/studio_ghibli.yml +112 -0
- data/lib/locales/ja/subscription.yml +8 -0
- data/lib/locales/ja/super_mario.yml +9 -0
- data/lib/locales/ja/super_smash_bros.yml +8 -0
- data/lib/locales/ja/university.yml +9 -0
- data/lib/locales/ja/zelda.yml +5 -0
- data/lib/locales/ko.yml +95 -2
- data/lib/locales/lt.yml +34 -0
- data/lib/locales/lv.yml +1 -1
- data/lib/locales/mi-NZ.yml +283 -0
- data/lib/locales/nb-NO.yml +5 -2
- data/lib/locales/nl.yml +1 -0
- data/lib/locales/pl.yml +2 -2
- data/lib/locales/pt-BR.yml +10 -2
- data/lib/locales/pt.yml +4 -2
- data/lib/locales/ru.yml +43 -1
- data/lib/locales/sk.yml +5 -2
- data/lib/locales/sv.yml +1 -0
- data/lib/locales/th.yml +76 -76
- data/lib/locales/tr.yml +1 -0
- data/lib/locales/uk.yml +3 -0
- data/lib/locales/vi.yml +1 -0
- data/lib/locales/zh-CN.yml +1 -0
- data/lib/locales/zh-TW.yml +1 -0
- metadata +219 -29
- 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/name.rb
CHANGED
|
@@ -5,14 +5,41 @@ module Faker
|
|
|
5
5
|
flexible :name
|
|
6
6
|
|
|
7
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
|
|
8
17
|
def name
|
|
9
18
|
parse('name.name')
|
|
10
19
|
end
|
|
11
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
|
|
12
30
|
def name_with_middle
|
|
13
31
|
parse('name.name_with_middle')
|
|
14
32
|
end
|
|
15
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
|
|
16
43
|
def first_name
|
|
17
44
|
if parse('name.first_name').empty?
|
|
18
45
|
fetch('name.first_name')
|
|
@@ -21,36 +48,103 @@ module Faker
|
|
|
21
48
|
end
|
|
22
49
|
end
|
|
23
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
|
|
24
60
|
def male_first_name
|
|
25
61
|
fetch('name.male_first_name')
|
|
26
62
|
end
|
|
27
63
|
alias first_name_men male_first_name
|
|
28
64
|
alias masculine_name male_first_name
|
|
29
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
|
|
30
75
|
def female_first_name
|
|
31
76
|
fetch('name.female_first_name')
|
|
32
77
|
end
|
|
33
78
|
alias first_name_women female_first_name
|
|
34
79
|
alias feminine_name female_first_name
|
|
35
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
|
|
36
105
|
def last_name
|
|
37
106
|
parse('name.last_name')
|
|
38
107
|
end
|
|
39
108
|
alias middle_name last_name
|
|
40
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
|
|
41
119
|
def prefix
|
|
42
120
|
fetch('name.prefix')
|
|
43
121
|
end
|
|
44
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
|
|
45
132
|
def suffix
|
|
46
133
|
fetch('name.suffix')
|
|
47
134
|
end
|
|
48
135
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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(number: 3)
|
|
54
148
|
(0...number).map { rand(65..90).chr }.join
|
|
55
149
|
end
|
|
56
150
|
end
|
data/lib/faker/default/nation.rb
CHANGED
|
@@ -17,8 +17,6 @@ module Faker
|
|
|
17
17
|
fetch('nation.nationality')
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
-
# rubocop:disable Style/AsciiComments
|
|
21
|
-
|
|
22
20
|
##
|
|
23
21
|
# Produces a random national flag emoji.
|
|
24
22
|
#
|
|
@@ -31,7 +29,6 @@ module Faker
|
|
|
31
29
|
def flag
|
|
32
30
|
sample(translate('faker.nation.flag')).pack('C*').force_encoding('utf-8')
|
|
33
31
|
end
|
|
34
|
-
# rubocop:enable Style/AsciiComments
|
|
35
32
|
|
|
36
33
|
##
|
|
37
34
|
# Produces a random national language.
|
data/lib/faker/default/nhs.rb
CHANGED
|
@@ -3,6 +3,15 @@
|
|
|
3
3
|
module Faker
|
|
4
4
|
class NationalHealthService < Base
|
|
5
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
|
|
6
15
|
def british_number
|
|
7
16
|
base_number = rand(400_000_001...499_999_999)
|
|
8
17
|
# If the check digit is equivalent to 10, the number is invalid.
|
|
@@ -12,14 +21,20 @@ module Faker
|
|
|
12
21
|
.chars
|
|
13
22
|
.insert(3, ' ')
|
|
14
23
|
.insert(7, ' ')
|
|
15
|
-
.join
|
|
24
|
+
.join
|
|
16
25
|
end
|
|
17
26
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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(number: 0)
|
|
23
38
|
sum = 0
|
|
24
39
|
number.to_s.chars.each_with_index do |digit, idx|
|
|
25
40
|
position = idx + 1
|
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
117
|
digits.times { hex += rand(15).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,6 +397,50 @@ 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
|