faker 2.10.2 → 2.15.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 +323 -0
- data/README.md +27 -2
- data/lib/faker.rb +57 -25
- data/lib/faker/blockchain/aeternity.rb +4 -4
- data/lib/faker/books/dune.rb +15 -2
- data/lib/faker/books/lovecraft.rb +8 -4
- data/lib/faker/default/address.rb +35 -5
- data/lib/faker/default/bank.rb +80 -3
- data/lib/faker/default/barcode.rb +154 -0
- data/lib/faker/default/beer.rb +3 -3
- data/lib/faker/default/blood.rb +48 -0
- data/lib/faker/default/business.rb +1 -1
- data/lib/faker/default/camera.rb +46 -0
- data/lib/faker/default/cannabis.rb +80 -0
- data/lib/faker/default/chile_rut.rb +47 -3
- data/lib/faker/default/code.rb +98 -17
- data/lib/faker/default/commerce.rb +74 -11
- data/lib/faker/default/company.rb +78 -11
- 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_coin.rb +45 -0
- data/lib/faker/default/date.rb +16 -12
- data/lib/faker/default/driving_licence.rb +65 -0
- data/lib/faker/default/drone.rb +332 -0
- data/lib/faker/default/faker_adjective.rb +35 -0
- data/lib/faker/default/file.rb +49 -0
- data/lib/faker/default/finance.rb +45 -0
- data/lib/faker/default/food.rb +1 -1
- data/lib/faker/default/funny_name.rb +45 -0
- data/lib/faker/default/gender.rb +1 -1
- data/lib/faker/default/hipster.rb +101 -4
- data/lib/faker/default/id_number.rb +88 -2
- data/lib/faker/default/internet.rb +68 -10
- data/lib/faker/default/internet_http.rb +48 -0
- data/lib/faker/default/invoice.rb +33 -6
- data/lib/faker/default/json.rb +59 -4
- data/lib/faker/default/lorem.rb +2 -2
- data/lib/faker/default/lorem_flickr.rb +65 -0
- data/lib/faker/default/lorem_pixel.rb +22 -0
- data/lib/faker/default/markdown.rb +89 -0
- data/lib/faker/default/measurement.rb +93 -2
- data/lib/faker/default/military.rb +26 -0
- data/lib/faker/default/mountain.rb +33 -0
- data/lib/faker/default/name.rb +98 -0
- data/lib/faker/default/nhs.rb +19 -0
- data/lib/faker/default/number.rb +6 -8
- data/lib/faker/default/omniauth.rb +107 -52
- data/lib/faker/default/phone_number.rb +88 -5
- data/lib/faker/default/placeholdit.rb +21 -0
- data/lib/faker/default/relationship.rb +1 -1
- data/lib/faker/default/slack_emoji.rb +81 -0
- data/lib/faker/default/south_africa.rb +90 -0
- data/lib/faker/default/space.rb +1 -1
- data/lib/faker/default/string.rb +19 -3
- data/lib/faker/default/stripe.rb +64 -3
- data/lib/faker/default/twitter.rb +35 -0
- data/lib/faker/default/types.rb +80 -0
- data/lib/faker/default/university.rb +45 -0
- data/lib/faker/default/vehicle.rb +184 -4
- data/lib/faker/default/verb.rb +45 -0
- data/lib/faker/default/world_cup.rb +4 -4
- data/lib/faker/fantasy/tolkien.rb +67 -0
- data/lib/faker/games/clash_of_clans.rb +48 -0
- data/lib/faker/games/control.rb +113 -0
- data/lib/faker/games/dnd.rb +136 -0
- data/lib/faker/games/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/street_fighter.rb +61 -0
- data/lib/faker/games/super_mario.rb +48 -0
- data/lib/faker/games/warhammer_fantasy.rb +74 -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/doraemon.rb +48 -0
- data/lib/faker/japanese_media/dragon_ball.rb +26 -0
- data/lib/faker/japanese_media/naruto.rb +61 -0
- data/lib/faker/japanese_media/studio_ghibli.rb +48 -0
- data/lib/faker/movies/departed.rb +49 -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 +2 -2
- data/lib/faker/music/hiphop.rb +48 -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/rush.rb +37 -0
- data/lib/faker/music/show.rb +49 -0
- data/lib/faker/quotes/chiquito.rb +80 -0
- data/lib/faker/quotes/quote.rb +80 -1
- data/lib/faker/quotes/rajnikanth.rb +26 -0
- data/lib/faker/quotes/shakespeare.rb +36 -0
- data/lib/faker/sports/volleyball.rb +74 -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/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/simpsons.rb +14 -0
- data/lib/faker/tv_shows/suits.rb +37 -0
- data/lib/faker/tv_shows/the_fresh_prince_of_bel_air.rb +17 -4
- data/lib/faker/version.rb +1 -1
- data/lib/helpers/base58.rb +1 -1
- data/lib/helpers/char.rb +22 -27
- data/lib/helpers/unique_generator.rb +3 -2
- data/lib/locales/de-AT.yml +4 -2
- data/lib/locales/de-CH.yml +1696 -1
- data/lib/locales/de.yml +4 -2
- data/lib/locales/en-AU.yml +50 -10
- data/lib/locales/en-CA.yml +2 -0
- data/lib/locales/en-GB.yml +1 -1
- data/lib/locales/en-IND.yml +2 -1
- data/lib/locales/en-MS.yml +2 -1
- data/lib/locales/en-NEP.yml +4 -1
- data/lib/locales/en-NZ.yml +3 -1
- data/lib/locales/en-PAK.yml +2 -1
- data/lib/locales/en-SG.yml +2 -1
- data/lib/locales/en-US.yml +36 -10
- data/lib/locales/en-au-ocker.yml +2 -1
- data/lib/locales/en.yml +0 -3
- data/lib/locales/en/address.yml +2 -0
- data/lib/locales/en/adjective.yml +179 -0
- data/lib/locales/en/animal.yml +1 -1
- data/lib/locales/en/aqua_teen_hunger_force.yml +33 -1
- data/lib/locales/en/bank.yml +1 -1
- data/lib/locales/en/barcode.yml +24 -0
- data/lib/locales/en/big_bang_theory.yml +38 -0
- data/lib/locales/en/blood.yml +13 -0
- data/lib/locales/en/buffy.yml +1 -1
- data/lib/locales/en/camera.yml +611 -0
- data/lib/locales/en/chiquito.yml +64 -0
- data/lib/locales/en/clash_of_clan.yml +101 -0
- data/lib/locales/en/company.yml +2 -2
- data/lib/locales/en/computer.yml +36 -0
- data/lib/locales/en/conan.yml +171 -0
- data/lib/locales/en/control.yml +247 -0
- data/lib/locales/en/demographic.yml +218 -5
- data/lib/locales/en/departed.yml +50 -0
- data/lib/locales/en/dnd.yml +451 -0
- data/lib/locales/en/doraemon.yml +286 -0
- data/lib/locales/en/dota.yml +531 -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 +401 -131
- data/lib/locales/en/elder_scrolls.yml +583 -9
- data/lib/locales/en/fallout.yml +311 -133
- data/lib/locales/en/final_space.yml +37 -0
- data/lib/locales/en/finance.yml +53 -0
- data/lib/locales/en/fresh_prince_of_bel_air.yml +1 -1
- data/lib/locales/en/futurama.yml +344 -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/house.yml +1 -1
- data/lib/locales/en/how_to_train_your_dragon.yml +174 -0
- data/lib/locales/en/jack_handey.yml +54 -0
- data/lib/locales/en/league_of_legends.yml +285 -6
- data/lib/locales/en/military.yml +179 -5
- data/lib/locales/en/minecraft.yml +663 -0
- data/lib/locales/en/mountain.yml +158 -0
- data/lib/locales/en/movie.yml +192 -1
- data/lib/locales/en/music.yml +451 -29
- data/lib/locales/en/myst.yml +87 -31
- data/lib/locales/en/name.yml +6 -5
- data/lib/locales/en/naruto.yml +231 -0
- data/lib/locales/en/one_piece.yml +2 -2
- data/lib/locales/en/opera.yml +168 -0
- data/lib/locales/en/overwatch.yml +2650 -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/rajnikanth.yml +77 -0
- data/lib/locales/en/room.yml +68 -0
- data/lib/locales/en/rush.yml +32 -0
- data/lib/locales/en/show.yml +597 -0
- data/lib/locales/en/simpsons.yml +668 -0
- data/lib/locales/en/source.yml +30 -0
- data/lib/locales/en/star_trek.yml +1 -1
- data/lib/locales/en/star_wars.yml +568 -220
- 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 +16 -4
- data/lib/locales/en/tolkien.yml +2453 -0
- data/lib/locales/en/volleyball.yml +501 -0
- data/lib/locales/en/warhammer_fantasy.yml +582 -0
- data/lib/locales/en/witcher.yml +389 -7
- data/lib/locales/en/world_of_warcraft.yml +122 -4
- data/lib/locales/en/zelda.yml +962 -4
- data/lib/locales/es.yml +56 -0
- data/lib/locales/fi-FI.yml +1 -1
- data/lib/locales/fr-CA.yml +21 -5
- data/lib/locales/fr-CH.yml +2 -2
- data/lib/locales/fr.yml +8 -2
- data/lib/locales/id.yml +2 -1
- data/lib/locales/it.yml +2 -1
- data/lib/locales/ja.yml +5 -1
- data/lib/locales/ko.yml +94 -2
- data/lib/locales/nb-NO.yml +4 -2
- data/lib/locales/pt-BR.yml +2 -1
- data/lib/locales/pt.yml +3 -1
- data/lib/locales/ru.yml +3 -1
- data/lib/locales/sk.yml +4 -2
- data/lib/locales/uk.yml +2 -0
- metadata +89 -21
- data/lib/locales/en/hobbit.yml +0 -19
- data/lib/locales/en/lord_of_the_rings.yml +0 -6
@@ -6,6 +6,19 @@ module Faker
|
|
6
6
|
ALL = 'all'
|
7
7
|
NONE = 'none'
|
8
8
|
|
9
|
+
##
|
10
|
+
# Produces a random height measurement.
|
11
|
+
#
|
12
|
+
# @param amount [Integer] Speficies the random height value.
|
13
|
+
# @return [String]
|
14
|
+
#
|
15
|
+
# @example
|
16
|
+
# Faker::Measurement.height #=> "6 inches"
|
17
|
+
# Faker::Measurement.height(amount: 1.4) #=> "1.4 inches"
|
18
|
+
# Faker::Measurement.height(amount: "none") #=> "inch"
|
19
|
+
# Faker::Measurement.height(amount: "all") #=> "inches"
|
20
|
+
#
|
21
|
+
# @faker.version 1.7.3
|
9
22
|
def height(legacy_amount = NOT_GIVEN, amount: rand(10))
|
10
23
|
warn_for_deprecated_arguments do |keywords|
|
11
24
|
keywords << :amount if legacy_amount != NOT_GIVEN
|
@@ -14,6 +27,17 @@ module Faker
|
|
14
27
|
define_measurement_locale(amount, 'height')
|
15
28
|
end
|
16
29
|
|
30
|
+
##
|
31
|
+
# Produces a random length measurement.
|
32
|
+
#
|
33
|
+
# @param amount [Integer] Speficies the random length value.
|
34
|
+
# @return [String]
|
35
|
+
#
|
36
|
+
# @example
|
37
|
+
# Faker::Measurement.length #=> "1 yard"
|
38
|
+
# Faker::Measurement.length(amount: 1.4) #=> "1.4 yards"
|
39
|
+
#
|
40
|
+
# @faker.version 1.7.3
|
17
41
|
def length(legacy_amount = NOT_GIVEN, amount: rand(10))
|
18
42
|
warn_for_deprecated_arguments do |keywords|
|
19
43
|
keywords << :amount if legacy_amount != NOT_GIVEN
|
@@ -22,6 +46,17 @@ module Faker
|
|
22
46
|
define_measurement_locale(amount, 'length')
|
23
47
|
end
|
24
48
|
|
49
|
+
##
|
50
|
+
# Produces a random volume measurement.
|
51
|
+
#
|
52
|
+
# @param amount [Integer] Speficies the random volume value.
|
53
|
+
# @return [String]
|
54
|
+
#
|
55
|
+
# @example
|
56
|
+
# Faker::Measurement.volume #=> "10 cups"
|
57
|
+
# Faker::Measurement.volume(amount: 1.4) #=> "1.4 cups"
|
58
|
+
#
|
59
|
+
# @faker.version 1.7.3
|
25
60
|
def volume(legacy_amount = NOT_GIVEN, amount: rand(10))
|
26
61
|
warn_for_deprecated_arguments do |keywords|
|
27
62
|
keywords << :amount if legacy_amount != NOT_GIVEN
|
@@ -30,6 +65,17 @@ module Faker
|
|
30
65
|
define_measurement_locale(amount, 'volume')
|
31
66
|
end
|
32
67
|
|
68
|
+
##
|
69
|
+
# Produces a random weight measurement.
|
70
|
+
#
|
71
|
+
# @param amount [Integer] Speficies the random weight value.
|
72
|
+
# @return [String]
|
73
|
+
#
|
74
|
+
# @example
|
75
|
+
# Faker::Measurement.weight #=> "3 pounds"
|
76
|
+
# Faker::Measurement.weight(amount: 1.4) #=> "1.4 pounds"
|
77
|
+
#
|
78
|
+
# @faker.version 1.7.3
|
33
79
|
def weight(legacy_amount = NOT_GIVEN, amount: rand(10))
|
34
80
|
warn_for_deprecated_arguments do |keywords|
|
35
81
|
keywords << :amount if legacy_amount != NOT_GIVEN
|
@@ -38,6 +84,17 @@ module Faker
|
|
38
84
|
define_measurement_locale(amount, 'weight')
|
39
85
|
end
|
40
86
|
|
87
|
+
##
|
88
|
+
# Produces a random metric height measurement.
|
89
|
+
#
|
90
|
+
# @param amount [Integer] Speficies the random height value.
|
91
|
+
# @return [String]
|
92
|
+
#
|
93
|
+
# @example
|
94
|
+
# Faker::Measurement.metric_height #=> "2 meters"
|
95
|
+
# Faker::Measurement.metric_height(amount: 1.4) #=> "1.4 meters"
|
96
|
+
#
|
97
|
+
# @faker.version 1.7.3
|
41
98
|
def metric_height(legacy_amount = NOT_GIVEN, amount: rand(10))
|
42
99
|
warn_for_deprecated_arguments do |keywords|
|
43
100
|
keywords << :amount if legacy_amount != NOT_GIVEN
|
@@ -46,6 +103,17 @@ module Faker
|
|
46
103
|
define_measurement_locale(amount, 'metric_height')
|
47
104
|
end
|
48
105
|
|
106
|
+
##
|
107
|
+
# Produces a random metric length measurement.
|
108
|
+
#
|
109
|
+
# @param amount [Integer] Speficies the random length value.
|
110
|
+
# @return [String]
|
111
|
+
#
|
112
|
+
# @example
|
113
|
+
# Faker::Measurement.metric_length #=> "0 decimeters"
|
114
|
+
# Faker::Measurement.metric_length(amount: 1.4) #=> "1.4 decimeters"
|
115
|
+
#
|
116
|
+
# @faker.version 1.7.3
|
49
117
|
def metric_length(legacy_amount = NOT_GIVEN, amount: rand(10))
|
50
118
|
warn_for_deprecated_arguments do |keywords|
|
51
119
|
keywords << :amount if legacy_amount != NOT_GIVEN
|
@@ -54,6 +122,17 @@ module Faker
|
|
54
122
|
define_measurement_locale(amount, 'metric_length')
|
55
123
|
end
|
56
124
|
|
125
|
+
##
|
126
|
+
# Produces a random metric volume measurement.
|
127
|
+
#
|
128
|
+
# @param amount [Integer] Speficies the random volume value.
|
129
|
+
# @return [String]
|
130
|
+
#
|
131
|
+
# @example
|
132
|
+
# Faker::Measurement.metric_volume #=> "1 liter"
|
133
|
+
# Faker::Measurement.metric_volume(amount: 1.4) #=> "1.4 liters"
|
134
|
+
#
|
135
|
+
# @faker.version 1.7.3
|
57
136
|
def metric_volume(legacy_amount = NOT_GIVEN, amount: rand(10))
|
58
137
|
warn_for_deprecated_arguments do |keywords|
|
59
138
|
keywords << :amount if legacy_amount != NOT_GIVEN
|
@@ -62,6 +141,17 @@ module Faker
|
|
62
141
|
define_measurement_locale(amount, 'metric_volume')
|
63
142
|
end
|
64
143
|
|
144
|
+
##
|
145
|
+
# Produces a random metric weight measurement.
|
146
|
+
#
|
147
|
+
# @param amount [Integer] Speficies the random weight value.
|
148
|
+
# @return [String]
|
149
|
+
#
|
150
|
+
# @example
|
151
|
+
# Faker::Measurement.metric_weight #=> "8 grams"
|
152
|
+
# Faker::Measurement.metric_weight(amount: 1.4) #=> "1.4 grams"
|
153
|
+
#
|
154
|
+
# @faker.version 1.7.3
|
65
155
|
def metric_weight(legacy_amount = NOT_GIVEN, amount: rand(10))
|
66
156
|
warn_for_deprecated_arguments do |keywords|
|
67
157
|
keywords << :amount if legacy_amount != NOT_GIVEN
|
@@ -82,9 +172,10 @@ module Faker
|
|
82
172
|
|
83
173
|
def define_measurement_locale(amount, locale)
|
84
174
|
ensure_valid_amount(amount)
|
85
|
-
|
175
|
+
case amount
|
176
|
+
when ALL
|
86
177
|
make_plural(fetch("measurement.#{locale}"))
|
87
|
-
|
178
|
+
when NONE
|
88
179
|
fetch("measurement.#{locale}")
|
89
180
|
else
|
90
181
|
locale = check_for_plural(fetch("measurement.#{locale}"), amount)
|
@@ -55,6 +55,32 @@ module Faker
|
|
55
55
|
fetch('military.air_force_rank')
|
56
56
|
end
|
57
57
|
|
58
|
+
##
|
59
|
+
# Produces a rank in the U.S. Space Force.
|
60
|
+
#
|
61
|
+
# @return [String]
|
62
|
+
#
|
63
|
+
# @example
|
64
|
+
# Faker::Military.space_force_rank #=> "Senior Enlisted Advisor of the Space Force"
|
65
|
+
#
|
66
|
+
# @faker.version next
|
67
|
+
def space_force_rank
|
68
|
+
fetch('military.space_force_rank')
|
69
|
+
end
|
70
|
+
|
71
|
+
##
|
72
|
+
# Produces a rank in the U.S. Coast Guard
|
73
|
+
#
|
74
|
+
# @return [String]
|
75
|
+
#
|
76
|
+
# @example
|
77
|
+
# Faker::Military.coast_guard_rank #=> "Master Chief Petty Officer of the Coast Guard"
|
78
|
+
#
|
79
|
+
# @faker.version next
|
80
|
+
def coast_guard_rank
|
81
|
+
fetch('military.coast_guard_rank')
|
82
|
+
end
|
83
|
+
|
58
84
|
##
|
59
85
|
# Produces a U.S. Department of Defense Paygrade.
|
60
86
|
#
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Mountain < Base
|
5
|
+
class << self
|
6
|
+
##
|
7
|
+
# Produces a name of a mountain
|
8
|
+
#
|
9
|
+
# @return [String]
|
10
|
+
#
|
11
|
+
# @example
|
12
|
+
# Faker::Mountain.name #=> "Mount Everest"
|
13
|
+
#
|
14
|
+
# @faker.version next
|
15
|
+
def name
|
16
|
+
fetch('mountain.name')
|
17
|
+
end
|
18
|
+
|
19
|
+
##
|
20
|
+
# Produces a name of a range
|
21
|
+
#
|
22
|
+
# @return [String]
|
23
|
+
#
|
24
|
+
# @example
|
25
|
+
# Faker::Mountain.range #=> "Dhaulagiri Himalaya"
|
26
|
+
#
|
27
|
+
# @faker.version next
|
28
|
+
def range
|
29
|
+
fetch('mountain.range')
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
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,31 +48,102 @@ 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
|
|
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
|
49
147
|
def initials(legacy_number = NOT_GIVEN, number: 3)
|
50
148
|
warn_for_deprecated_arguments do |keywords|
|
51
149
|
keywords << :number if legacy_number != NOT_GIVEN
|
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.
|
@@ -15,6 +24,16 @@ module Faker
|
|
15
24
|
.join('')
|
16
25
|
end
|
17
26
|
|
27
|
+
##
|
28
|
+
# Produces a random British NHS number's check digit.
|
29
|
+
#
|
30
|
+
# @param number [Integer] Specifies the NHS number the check digit belongs to.
|
31
|
+
# @return [Integer]
|
32
|
+
#
|
33
|
+
# @example
|
34
|
+
# Faker::NationalHealthService.check_digit(number: 400_012_114) #=> 6
|
35
|
+
#
|
36
|
+
# @faker.version 1.9.2
|
18
37
|
def check_digit(legacy_number = NOT_GIVEN, number: 0)
|
19
38
|
warn_for_deprecated_arguments do |keywords|
|
20
39
|
keywords << :number if legacy_number != NOT_GIVEN
|
data/lib/faker/default/number.rb
CHANGED
@@ -40,7 +40,7 @@ module Faker
|
|
40
40
|
keywords << :digits if legacy_digits != NOT_GIVEN
|
41
41
|
end
|
42
42
|
|
43
|
-
|
43
|
+
"0#{(2..digits).collect { digit }.join}"
|
44
44
|
end
|
45
45
|
|
46
46
|
##
|
@@ -85,13 +85,11 @@ module Faker
|
|
85
85
|
end
|
86
86
|
|
87
87
|
l_d = number(digits: l_digits)
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
generate(r_digits - 1).join + non_zero_digit.to_s
|
94
|
-
end
|
88
|
+
|
89
|
+
# Ensure the last digit is not zero
|
90
|
+
# so it does not get truncated on converting to float
|
91
|
+
r_d = generate(r_digits - 1).join + non_zero_digit.to_s
|
92
|
+
|
95
93
|
"#{l_d}.#{r_d}".to_f
|
96
94
|
end
|
97
95
|
|
@@ -9,12 +9,24 @@ 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
15
|
@email = email || Internet.safe_email(name: self.name)
|
14
16
|
@first_name, @last_name = self.name.split
|
15
17
|
end
|
16
18
|
|
17
19
|
class << self
|
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
|
18
30
|
# rubocop:disable Metrics/ParameterLists
|
19
31
|
def google(legacy_name = NOT_GIVEN, legacy_email = NOT_GIVEN, legacy_uid = NOT_GIVEN, name: nil, email: nil, uid: Number.number(digits: 9).to_s)
|
20
32
|
# rubocop:enable Metrics/ParameterLists
|
@@ -57,21 +69,32 @@ module Faker
|
|
57
69
|
hd: "#{Company.name.downcase}.com"
|
58
70
|
},
|
59
71
|
id_info: {
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
72
|
+
iss: 'accounts.google.com',
|
73
|
+
at_hash: Crypto.md5,
|
74
|
+
email_verified: true,
|
75
|
+
sub: Number.number(digits: 28).to_s,
|
76
|
+
azp: 'APP_ID',
|
77
|
+
email: auth.email,
|
78
|
+
aud: 'APP_ID',
|
79
|
+
iat: Time.forward.to_i,
|
80
|
+
exp: Time.forward.to_i,
|
81
|
+
openid_id: "https://www.google.com/accounts/o8/id?id=#{uid}"
|
70
82
|
}
|
71
83
|
}
|
72
84
|
}
|
73
85
|
end
|
74
86
|
|
87
|
+
##
|
88
|
+
# Generate a mock Omniauth response from Facebook.
|
89
|
+
#
|
90
|
+
# @param name [String] A specific name to return in the response.
|
91
|
+
# @param email [String] A specific email to return in the response.
|
92
|
+
# @param username [String] A specific username to return in the response.
|
93
|
+
# @param uid [String] A specific UID to return in the response.
|
94
|
+
#
|
95
|
+
# @return [Hash] An auth hash in the format provided by omniauth-facebook.
|
96
|
+
#
|
97
|
+
# @faker.version 1.8.0
|
75
98
|
# rubocop:disable Metrics/ParameterLists
|
76
99
|
def facebook(legacy_name = NOT_GIVEN, legacy_email = NOT_GIVEN, legacy_username = NOT_GIVEN, legacy_uid = NOT_GIVEN, name: nil, email: nil, username: nil, uid: Number.number(digits: 7).to_s)
|
77
100
|
# rubocop:enable Metrics/ParameterLists
|
@@ -123,6 +146,16 @@ module Faker
|
|
123
146
|
}
|
124
147
|
end
|
125
148
|
|
149
|
+
##
|
150
|
+
# Generate a mock Omniauth response from Twitter.
|
151
|
+
#
|
152
|
+
# @param name [String] A specific name to return in the response.
|
153
|
+
# @param nickname [String] A specific nickname to return in the response.
|
154
|
+
# @param uid [String] A specific UID to return in the response.
|
155
|
+
#
|
156
|
+
# @return [Hash] An auth hash in the format provided by omniauth-twitter.
|
157
|
+
#
|
158
|
+
# @faker.version 1.8.0
|
126
159
|
# rubocop:disable Metrics/ParameterLists
|
127
160
|
def twitter(legacy_name = NOT_GIVEN, legacy_nickname = NOT_GIVEN, legacy_uid = NOT_GIVEN, name: nil, nickname: nil, uid: Number.number(digits: 6).to_s)
|
128
161
|
# rubocop:enable Metrics/ParameterLists
|
@@ -204,6 +237,16 @@ module Faker
|
|
204
237
|
}
|
205
238
|
end
|
206
239
|
|
240
|
+
##
|
241
|
+
# Generate a mock Omniauth response from LinkedIn.
|
242
|
+
#
|
243
|
+
# @param name [String] A specific name to return in the response.
|
244
|
+
# @param email [String] A specific email to return in the response.
|
245
|
+
# @param uid [String] A specific UID to return in the response.
|
246
|
+
#
|
247
|
+
# @return [Hash] An auth hash in the format provided by omniauth-linkedin.
|
248
|
+
#
|
249
|
+
# @faker.version 1.8.0
|
207
250
|
# rubocop:disable Metrics/ParameterLists
|
208
251
|
def linkedin(legacy_name = NOT_GIVEN, legacy_email = NOT_GIVEN, legacy_uid = NOT_GIVEN, name: nil, email: nil, uid: Number.number(digits: 6).to_s)
|
209
252
|
# rubocop:enable Metrics/ParameterLists
|
@@ -223,58 +266,68 @@ module Faker
|
|
223
266
|
industry = Commerce.department
|
224
267
|
url = "http://www.linkedin.com/in/#{first_name}#{last_name}"
|
225
268
|
{
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
269
|
+
provider: 'linkedin',
|
270
|
+
uid: uid,
|
271
|
+
info: {
|
272
|
+
name: auth.name,
|
273
|
+
email: auth.email,
|
274
|
+
nickname: auth.name,
|
275
|
+
first_name: auth.first_name,
|
276
|
+
last_name: auth.last_name,
|
277
|
+
location: location,
|
278
|
+
description: description,
|
279
|
+
image: image,
|
280
|
+
phone: PhoneNumber.phone_number,
|
281
|
+
headline: description,
|
282
|
+
industry: industry,
|
283
|
+
urls: {
|
284
|
+
public_profile: url
|
242
285
|
}
|
243
286
|
},
|
244
|
-
|
245
|
-
|
246
|
-
|
287
|
+
credentials: {
|
288
|
+
token: token,
|
289
|
+
secret: secret
|
247
290
|
},
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
291
|
+
extra: {
|
292
|
+
access_token: {
|
293
|
+
token: token,
|
294
|
+
secret: secret,
|
295
|
+
consumer: nil,
|
296
|
+
params: {
|
254
297
|
oauth_token: token,
|
255
298
|
oauth_token_secret: secret,
|
256
299
|
oauth_expires_in: Time.forward.to_i,
|
257
300
|
oauth_authorization_expires_in: Time.forward.to_i
|
258
301
|
},
|
259
|
-
|
302
|
+
response: nil
|
260
303
|
},
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
304
|
+
raw_info: {
|
305
|
+
firstName: auth.first_name,
|
306
|
+
headline: description,
|
307
|
+
id: uid,
|
308
|
+
industry: industry,
|
309
|
+
lastName: auth.last_name,
|
310
|
+
location: {
|
311
|
+
country: { code: Address.country_code.downcase },
|
312
|
+
name: city_state.split(', ').first
|
270
313
|
},
|
271
|
-
|
272
|
-
|
314
|
+
pictureUrl: image,
|
315
|
+
publicProfileUrl: url
|
273
316
|
}
|
274
317
|
}
|
275
318
|
}
|
276
319
|
end
|
277
320
|
|
321
|
+
##
|
322
|
+
# Generate a mock Omniauth response from Github.
|
323
|
+
#
|
324
|
+
# @param name [String] A specific name to return in the response.
|
325
|
+
# @param email [String] A specific email to return in the response.
|
326
|
+
# @param uid [String] A specific UID to return in the response.
|
327
|
+
#
|
328
|
+
# @return [Hash] An auth hash in the format provided by omniauth-github.
|
329
|
+
#
|
330
|
+
# @faker.version 1.8.0
|
278
331
|
# rubocop:disable Metrics/ParameterLists
|
279
332
|
def github(legacy_name = NOT_GIVEN, legacy_email = NOT_GIVEN, legacy_uid = NOT_GIVEN, name: nil, email: nil, uid: Number.number(digits: 8).to_s)
|
280
333
|
# rubocop:enable Metrics/ParameterLists
|
@@ -342,13 +395,15 @@ module Faker
|
|
342
395
|
end
|
343
396
|
|
344
397
|
##
|
345
|
-
# Generate a mock Omniauth response from Apple
|
398
|
+
# Generate a mock Omniauth response from Apple.
|
399
|
+
#
|
400
|
+
# @param name [String] A specific name to return in the response.
|
401
|
+
# @param email [String] A specific email to return in the response.
|
402
|
+
# @param uid [String] A specific UID to return in the response.
|
346
403
|
#
|
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
|
404
|
+
# @return [Hash] An auth hash in the format provided by omniauth-apple.
|
350
405
|
#
|
351
|
-
# @
|
406
|
+
# @faker.version 2.3.0
|
352
407
|
def apple(name: nil, email: nil, uid: nil)
|
353
408
|
uid ||= "#{Number.number(digits: 6)}.#{Number.hexadecimal(digits: 32)}.#{Number.number(digits: 4)}"
|
354
409
|
auth = Omniauth.new(name: name, email: email)
|