faker 2.20.0 → 3.2.1
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 +346 -7
- data/History.md +1 -1
- data/README.md +193 -107
- data/lib/faker/blockchain/aeternity.rb +1 -1
- data/lib/faker/blockchain/ethereum.rb +1 -1
- data/lib/faker/blockchain/tezos.rb +1 -1
- data/lib/faker/books/dune.rb +2 -10
- data/lib/faker/books/lovecraft.rb +7 -38
- data/lib/faker/default/address.rb +5 -25
- 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 +9 -17
- data/lib/faker/default/boolean.rb +1 -4
- data/lib/faker/default/chile_rut.rb +25 -25
- data/lib/faker/default/code.rb +68 -39
- data/lib/faker/default/color.rb +77 -6
- data/lib/faker/default/commerce.rb +3 -17
- data/lib/faker/default/company.rb +50 -19
- data/lib/faker/default/crypto_coin.rb +3 -15
- data/lib/faker/default/date.rb +65 -42
- data/lib/faker/default/demographic.rb +1 -5
- data/lib/faker/default/driving_licence.rb +20 -19
- data/lib/faker/default/drone.rb +1 -1
- data/lib/faker/default/file.rb +5 -24
- data/lib/faker/default/finance.rb +17 -7
- data/lib/faker/default/food.rb +14 -1
- data/lib/faker/default/hipster.rb +6 -45
- data/lib/faker/default/html.rb +230 -0
- data/lib/faker/default/id_number.rb +125 -14
- data/lib/faker/default/internet.rb +116 -111
- data/lib/faker/default/invoice.rb +4 -17
- data/lib/faker/default/json.rb +2 -20
- data/lib/faker/default/lorem.rb +25 -74
- data/lib/faker/default/lorem_flickr.rb +4 -32
- data/lib/faker/default/markdown.rb +6 -11
- data/lib/faker/default/marketing.rb +1 -1
- data/lib/faker/default/measurement.rb +16 -48
- data/lib/faker/default/name.rb +1 -5
- data/lib/faker/default/nhs.rb +2 -6
- data/lib/faker/default/number.rb +10 -55
- data/lib/faker/default/omniauth.rb +6 -40
- data/lib/faker/default/phone_number.rb +2 -6
- data/lib/faker/default/placeholdit.rb +1 -12
- data/lib/faker/default/relationship.rb +1 -5
- data/lib/faker/default/release notes.md +59 -0
- data/lib/faker/default/source.rb +3 -16
- data/lib/faker/default/string.rb +1 -5
- data/lib/faker/default/stripe.rb +4 -20
- data/lib/faker/default/time.rb +4 -32
- data/lib/faker/default/twitter.rb +7 -23
- data/lib/faker/default/types.rb +7 -28
- data/lib/faker/default/vehicle.rb +40 -51
- data/lib/faker/default/vulnerability_identifier.rb +23 -0
- data/lib/faker/default/world_cup.rb +2 -11
- data/lib/faker/games/clash_of_clans.rb +1 -1
- data/lib/faker/games/dnd.rb +49 -7
- data/lib/faker/games/dota.rb +1 -5
- data/lib/faker/games/final_fantasy_xiv.rb +73 -0
- data/lib/faker/games/minecraft.rb +1 -1
- data/lib/faker/games/myst.rb +1 -1
- data/lib/faker/games/tarkov.rb +205 -0
- data/lib/faker/japanese_media/cowboy_bebop.rb +61 -0
- data/lib/faker/japanese_media/kamen_rider.rb +2 -2
- data/lib/faker/japanese_media/one_piece.rb +1 -1
- data/lib/faker/movies/avatar.rb +49 -0
- data/lib/faker/movies/hackers.rb +48 -0
- data/lib/faker/movies/star_wars.rb +1 -5
- data/lib/faker/movies/tron.rb +161 -0
- data/lib/faker/quotes/quote.rb +13 -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/travel/airport.rb +43 -0
- data/lib/faker/travel/train_station.rb +54 -0
- data/lib/faker/tv_shows/archer.rb +51 -0
- data/lib/faker/tv_shows/south_park.rb +15 -0
- data/lib/faker/tv_shows/spongebob.rb +50 -0
- data/lib/faker/version.rb +1 -1
- data/lib/faker.rb +26 -67
- data/lib/helpers/base58.rb +1 -1
- data/lib/helpers/positional_generator.rb +480 -0
- data/lib/helpers/unique_generator.rb +13 -11
- data/lib/locales/README.md +18 -2
- data/lib/locales/ar.yml +1 -0
- data/lib/locales/bg.yml +1 -1
- data/lib/locales/da-DK.yml +1 -1
- data/lib/locales/de-AT.yml +1 -2
- data/lib/locales/de-CH.yml +4336 -12
- data/lib/locales/de.yml +1 -1
- data/lib/locales/en/airport.yml +381 -0
- data/lib/locales/en/archer.yml +75 -0
- data/lib/locales/en/australia.yml +3 -4
- data/lib/locales/en/avatar.yml +31 -0
- data/lib/locales/en/chess.yml +103 -0
- data/lib/locales/en/company.yml +1 -0
- data/lib/locales/en/computer.yml +23 -4
- data/lib/locales/en/cowboy_bebop.yml +163 -0
- data/lib/locales/en/dnd.yml +186 -1
- data/lib/locales/en/dota.yml +113 -0
- data/lib/locales/en/file.yml +9 -1
- data/lib/locales/en/final_fantasy_xiv.yml +754 -0
- data/lib/locales/en/finance.yml +3 -1
- data/lib/locales/en/food.yml +12 -0
- data/lib/locales/en/game.yml +0 -1
- data/lib/locales/en/hackers.yml +53 -0
- data/lib/locales/en/heroes.yml +2 -2
- data/lib/locales/en/internet.yml +32 -0
- data/lib/locales/en/minecraft.yml +4 -4
- data/lib/locales/en/mitch_hedberg.yml +46 -0
- data/lib/locales/en/mountaineering.yml +14 -0
- data/lib/locales/en/movie.yml +2 -1
- data/lib/locales/en/naruto.yml +2 -3
- data/lib/locales/en/one_piece.yml +1 -1
- data/lib/locales/en/opera.yml +2 -2
- data/lib/locales/en/overwatch.yml +5 -7
- data/lib/locales/en/source.yml +5 -0
- data/lib/locales/en/south_park.yml +360 -2
- data/lib/locales/en/spongebob.yml +489 -0
- data/lib/locales/en/sport.yml +130 -0
- data/lib/locales/en/star_wars.yml +1 -1
- data/lib/locales/en/tarkov.yml +593 -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-AU.yml +2 -2
- data/lib/locales/en-CA.yml +2 -1
- data/lib/locales/en-GB.yml +2 -1
- data/lib/locales/en-MS.yml +1 -0
- data/lib/locales/en-NG.yml +1 -0
- data/lib/locales/en-NZ.yml +1 -0
- data/lib/locales/en-PAK.yml +1 -0
- data/lib/locales/en-SG.yml +1 -0
- data/lib/locales/en-UG.yml +1 -0
- data/lib/locales/en-US.yml +1 -1
- data/lib/locales/en-ZA.yml +1 -1
- data/lib/locales/en-au-ocker.yml +2 -0
- data/lib/locales/es-AR.yml +3 -2
- data/lib/locales/es-MX.yml +1 -1
- data/lib/locales/es.yml +2 -2
- data/lib/locales/fi-FI.yml +3 -1
- data/lib/locales/fr/address.yml +0 -1
- data/lib/locales/fr/adjective.yml +266 -0
- data/lib/locales/fr/ancient.yml +141 -0
- data/lib/locales/fr/name.yml +2 -1
- data/lib/locales/fr-CA.yml +1 -1
- data/lib/locales/fr-CH.yml +1 -1
- data/lib/locales/hy.yml +2 -1
- data/lib/locales/it.yml +1 -0
- data/lib/locales/ja/adjective.yml +148 -0
- data/lib/locales/ja/dog.yml +1 -0
- data/lib/locales/ja/emotion.yml +51 -0
- data/lib/locales/ja/naruto.yml +230 -0
- data/lib/locales/ja/relationship.yml +10 -0
- data/lib/locales/ja/sport.yml +130 -0
- data/lib/locales/ja/super_mario.yml +1 -1
- data/lib/locales/ko.yml +1 -0
- data/lib/locales/lt.yml +0 -1
- data/lib/locales/mi-NZ.yml +2 -0
- data/lib/locales/nb-NO.yml +1 -0
- data/lib/locales/nl.yml +1 -0
- data/lib/locales/pl.yml +2 -2
- data/lib/locales/pt-BR.yml +1 -0
- data/lib/locales/pt.yml +1 -1
- data/lib/locales/ru.yml +1 -0
- data/lib/locales/sk.yml +1 -0
- 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 +46 -127
- data/lib/faker/default/fillmurray.rb +0 -45
- data/lib/faker/default/lorem_pixel.rb +0 -70
- /data/lib/faker/default/{faker_adjective.rb → adjective.rb} +0 -0
|
@@ -6,10 +6,9 @@ module Faker
|
|
|
6
6
|
|
|
7
7
|
MILEAGE_MIN = 10_000
|
|
8
8
|
MILEAGE_MAX = 90_000
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
VIN_REGEX = /^[A-Z0-9]{3}[A-Z0-9]{5}[A-Z0-9]{1}[A-Z0-9]{1}[A-Z0-0]{1}[A-Z0-9]{1}\d{5}$/.freeze
|
|
9
|
+
VIN_KEYSPACE = %w[A B C D E F G H J K L M N P R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9].freeze
|
|
10
|
+
VIN_TRANSLITERATION = { A: 1, B: 2, C: 3, D: 4, E: 5, F: 6, G: 7, H: 8, J: 1, K: 2, L: 3, M: 4, N: 5, P: 7, R: 9, S: 2, T: 3, U: 4, V: 5, W: 6, X: 7, Y: 8, Z: 9 }.freeze
|
|
11
|
+
VIN_WEIGHT = [8, 7, 6, 5, 4, 3, 2, 10, 0, 9, 8, 7, 6, 5, 4, 3, 2].freeze
|
|
13
12
|
SG_CHECKSUM_WEIGHTS = [3, 14, 2, 12, 2, 11, 1].freeze
|
|
14
13
|
SG_CHECKSUM_CHARS = 'AYUSPLJGDBZXTRMKHEC'
|
|
15
14
|
|
|
@@ -23,7 +22,25 @@ module Faker
|
|
|
23
22
|
#
|
|
24
23
|
# @faker.version 1.6.4
|
|
25
24
|
def vin
|
|
26
|
-
|
|
25
|
+
generate(:string) do |g|
|
|
26
|
+
g.letter(name: :wmi, ranges: ['100'..'199', '400'..'499', '500'..'599', '700'..'799', '7A0'..'7F9'])
|
|
27
|
+
g.letter(name: :vds, length: 5, ranges: [VIN_KEYSPACE])
|
|
28
|
+
g.computed(name: :checksum, deps: %i[wmi vds model_year plant_code vis]) do |wmi, vds, model_year, plant_code, vis|
|
|
29
|
+
checksum = "#{wmi}#{vds}0#{model_year}#{plant_code}#{vis}".chars.each_with_index.map do |char, i|
|
|
30
|
+
value = (char =~ /\A\d\z/ ? char.to_i : VIN_TRANSLITERATION[char.to_sym])
|
|
31
|
+
value * VIN_WEIGHT[i]
|
|
32
|
+
end.inject(:+) % 11
|
|
33
|
+
|
|
34
|
+
if checksum == 10
|
|
35
|
+
'X'
|
|
36
|
+
else
|
|
37
|
+
checksum
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
g.letter(name: :model_year, length: 1, ranges: [VIN_KEYSPACE - %w[U Z 0]])
|
|
41
|
+
g.letter(name: :plant_code, length: 1, ranges: [VIN_KEYSPACE])
|
|
42
|
+
g.int(name: :vis, length: 6)
|
|
43
|
+
end
|
|
27
44
|
end
|
|
28
45
|
|
|
29
46
|
# Produces a random vehicle manufacturer.
|
|
@@ -62,11 +79,7 @@ module Faker
|
|
|
62
79
|
# Faker::Vehicle.model(make_of_model: 'Toyota') #=> "Prius"
|
|
63
80
|
#
|
|
64
81
|
# @faker.version 1.6.4
|
|
65
|
-
def model(
|
|
66
|
-
warn_for_deprecated_arguments do |keywords|
|
|
67
|
-
keywords << :make_of_model if legacy_make_of_model != NOT_GIVEN
|
|
68
|
-
end
|
|
69
|
-
|
|
82
|
+
def model(make_of_model: '')
|
|
70
83
|
return fetch("vehicle.models_by_make.#{make}") if make_of_model.empty?
|
|
71
84
|
|
|
72
85
|
fetch("vehicle.models_by_make.#{make_of_model}")
|
|
@@ -249,12 +262,7 @@ module Faker
|
|
|
249
262
|
# Faker::Vehicle.kilometrage #=> 35378
|
|
250
263
|
#
|
|
251
264
|
# @faker.version 1.6.4
|
|
252
|
-
def mileage(
|
|
253
|
-
warn_for_deprecated_arguments do |keywords|
|
|
254
|
-
keywords << :min if legacy_min != NOT_GIVEN
|
|
255
|
-
keywords << :max if legacy_max != NOT_GIVEN
|
|
256
|
-
end
|
|
257
|
-
|
|
265
|
+
def mileage(min: MILEAGE_MIN, max: MILEAGE_MAX)
|
|
258
266
|
rand_in_range(min, max)
|
|
259
267
|
end
|
|
260
268
|
|
|
@@ -271,11 +279,7 @@ module Faker
|
|
|
271
279
|
# Faker::Vehicle.license_plate(state_abbreviation: 'FL') #=> "977 UNU"
|
|
272
280
|
#
|
|
273
281
|
# @faker.version 1.6.4
|
|
274
|
-
def license_plate(
|
|
275
|
-
warn_for_deprecated_arguments do |keywords|
|
|
276
|
-
keywords << :state_abbreviation if legacy_state_abreviation != NOT_GIVEN
|
|
277
|
-
end
|
|
278
|
-
|
|
282
|
+
def license_plate(state_abbreviation: '')
|
|
279
283
|
return regexify(bothify(fetch('vehicle.license_plate'))) if state_abbreviation.empty?
|
|
280
284
|
|
|
281
285
|
key = "vehicle.license_plate_by_state.#{state_abbreviation}"
|
|
@@ -297,45 +301,30 @@ module Faker
|
|
|
297
301
|
"#{plate_number}#{singapore_checksum(plate_number)}"
|
|
298
302
|
end
|
|
299
303
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
def
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
vin.each_char.with_index do |c, i|
|
|
313
|
-
n = vin_char_to_number(c).to_i
|
|
314
|
-
weight = VIN_WEIGHTS[i].to_i
|
|
315
|
-
sum += weight * n
|
|
316
|
-
end
|
|
317
|
-
|
|
318
|
-
mod = sum % 11
|
|
319
|
-
mod == 10 ? 'X' : mod
|
|
304
|
+
##
|
|
305
|
+
# Produces a car version
|
|
306
|
+
#
|
|
307
|
+
# @return [String]
|
|
308
|
+
#
|
|
309
|
+
# @example
|
|
310
|
+
# Faker::Vehicle.version #=> "40 TFSI Premium"
|
|
311
|
+
#
|
|
312
|
+
# @faker.version next
|
|
313
|
+
def version
|
|
314
|
+
fetch('vehicle.version')
|
|
320
315
|
end
|
|
321
316
|
|
|
322
|
-
|
|
323
|
-
index = VIN_LETTERS.split('').index(char)
|
|
324
|
-
|
|
325
|
-
return char.to_i if index.nil?
|
|
326
|
-
|
|
327
|
-
VIN_MAP[index]
|
|
328
|
-
end
|
|
317
|
+
private
|
|
329
318
|
|
|
330
319
|
def singapore_checksum(plate_number)
|
|
331
|
-
padded_alphabets = format('%3s', plate_number[/^[A-Z]+/]).tr(' ', '-').
|
|
332
|
-
padded_digits = format('%04d', plate_number[/\d+/]).
|
|
320
|
+
padded_alphabets = format('%3s', plate_number[/^[A-Z]+/]).tr(' ', '-').chars
|
|
321
|
+
padded_digits = format('%04d', plate_number[/\d+/]).chars.map(&:to_i)
|
|
333
322
|
sum = [*padded_alphabets, *padded_digits].each_with_index.reduce(0) do |memo, (char, i)|
|
|
334
323
|
value = char.is_a?(Integer) ? char : char.ord - 64
|
|
335
324
|
memo + (SG_CHECKSUM_WEIGHTS[i] * value)
|
|
336
325
|
end
|
|
337
326
|
|
|
338
|
-
SG_CHECKSUM_CHARS.
|
|
327
|
+
SG_CHECKSUM_CHARS.chars[sum % 19]
|
|
339
328
|
end
|
|
340
329
|
end
|
|
341
330
|
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class VulnerabilityIdentifier < Base
|
|
5
|
+
class << self
|
|
6
|
+
##
|
|
7
|
+
# Produces a Common Vulnerabilities and Exposures (CVE) identifier.
|
|
8
|
+
#
|
|
9
|
+
# @param year [Integer] The year-part of the CVE identifier (defaults to the current year)
|
|
10
|
+
# @return [String]
|
|
11
|
+
#
|
|
12
|
+
# @example
|
|
13
|
+
# Faker::VulnerabilityIdentifier.cve #=> "CVE-2021-1337"
|
|
14
|
+
# Faker::VulnerabilityIdentifier.cve(year: 1999) #=> "CVE-1999-0523"
|
|
15
|
+
#
|
|
16
|
+
# @faker.version next
|
|
17
|
+
def cve(year: ::Date.today.year)
|
|
18
|
+
index = rand_in_range(1, 99_999).to_s.rjust(4, '0')
|
|
19
|
+
"CVE-#{year}-#{index}"
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -53,11 +53,7 @@ module Faker
|
|
|
53
53
|
# Faker::WorldCup.group #=> "Russia"
|
|
54
54
|
#
|
|
55
55
|
# @faker.version 2.13.0
|
|
56
|
-
def group(
|
|
57
|
-
warn_for_deprecated_arguments do |keywords|
|
|
58
|
-
keywords << :group if legacy_group != NOT_GIVEN
|
|
59
|
-
end
|
|
60
|
-
|
|
56
|
+
def group(group: 'group_A')
|
|
61
57
|
fetch("world_cup.groups.#{group}")
|
|
62
58
|
end
|
|
63
59
|
|
|
@@ -73,12 +69,7 @@ module Faker
|
|
|
73
69
|
# Faker::WorldCup.roster(country: 'Spain', type: 'forwards') #=> "Diego Costa"
|
|
74
70
|
#
|
|
75
71
|
# @faker.version 2.13.0
|
|
76
|
-
def roster(
|
|
77
|
-
warn_for_deprecated_arguments do |keywords|
|
|
78
|
-
keywords << :country if legacy_country != NOT_GIVEN
|
|
79
|
-
keywords << :type if legacy_type != NOT_GIVEN
|
|
80
|
-
end
|
|
81
|
-
|
|
72
|
+
def roster(country: 'Egypt', type: 'coach')
|
|
82
73
|
fetch("world_cup.rosters.#{country}.#{type}")
|
|
83
74
|
end
|
|
84
75
|
end
|
data/lib/faker/games/dnd.rb
CHANGED
|
@@ -43,6 +43,19 @@ module Faker
|
|
|
43
43
|
fetch('dnd.cities')
|
|
44
44
|
end
|
|
45
45
|
|
|
46
|
+
##
|
|
47
|
+
# Produces the first name of a character or monster from Dungeons and Dragons.
|
|
48
|
+
#
|
|
49
|
+
# @return [String]
|
|
50
|
+
#
|
|
51
|
+
# @example
|
|
52
|
+
# Faker::Games::DnD.name #=> "Eilonwy"
|
|
53
|
+
#
|
|
54
|
+
# @faker.version next
|
|
55
|
+
def first_name
|
|
56
|
+
fetch('dnd.name.first_name')
|
|
57
|
+
end
|
|
58
|
+
|
|
46
59
|
##
|
|
47
60
|
# Produces the name of a class from Dungeons and Dragons (PHB).
|
|
48
61
|
#
|
|
@@ -69,6 +82,19 @@ module Faker
|
|
|
69
82
|
fetch('dnd.languages')
|
|
70
83
|
end
|
|
71
84
|
|
|
85
|
+
##
|
|
86
|
+
# Produces a last name from Dungeons and Dragons.
|
|
87
|
+
#
|
|
88
|
+
# @return [String]
|
|
89
|
+
#
|
|
90
|
+
# @example
|
|
91
|
+
# Faker::Games::DnD.last_name #=> "Leafwhisper"
|
|
92
|
+
#
|
|
93
|
+
# @faker.version next
|
|
94
|
+
def last_name
|
|
95
|
+
fetch('dnd.name.last_name')
|
|
96
|
+
end
|
|
97
|
+
|
|
72
98
|
##
|
|
73
99
|
# Produces the name of a melee weapon from Dungeons and Dragons.
|
|
74
100
|
#
|
|
@@ -95,6 +121,19 @@ module Faker
|
|
|
95
121
|
fetch('dnd.monsters')
|
|
96
122
|
end
|
|
97
123
|
|
|
124
|
+
##
|
|
125
|
+
# Produces a full name from Dungeons and Dragons.
|
|
126
|
+
#
|
|
127
|
+
# @return [String]
|
|
128
|
+
#
|
|
129
|
+
# @example
|
|
130
|
+
# Faker::Games::DnD.name #=> "Drakon Blackthorn"
|
|
131
|
+
#
|
|
132
|
+
# @faker.version next
|
|
133
|
+
def name
|
|
134
|
+
"#{fetch('dnd.name.first_name')} #{fetch('dnd.name.last_name')}"
|
|
135
|
+
end
|
|
136
|
+
|
|
98
137
|
##
|
|
99
138
|
# Produces the name of a race from Dungeons and Dragons (PHB).
|
|
100
139
|
#
|
|
@@ -121,14 +160,17 @@ module Faker
|
|
|
121
160
|
fetch('dnd.ranged_weapons')
|
|
122
161
|
end
|
|
123
162
|
|
|
124
|
-
|
|
125
|
-
#
|
|
163
|
+
##
|
|
164
|
+
# Produces a last name from Dungeons and Dragons.
|
|
126
165
|
#
|
|
127
|
-
# @
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
166
|
+
# @return [String]
|
|
167
|
+
#
|
|
168
|
+
# @example
|
|
169
|
+
# Faker::Games::DnD.title_name #=> "Corvus the Cunning"
|
|
170
|
+
#
|
|
171
|
+
# @faker.version next
|
|
172
|
+
def title_name
|
|
173
|
+
"#{fetch('dnd.name.first_name')} #{fetch('dnd.name.title')}"
|
|
132
174
|
end
|
|
133
175
|
end
|
|
134
176
|
end
|
data/lib/faker/games/dota.rb
CHANGED
|
@@ -80,11 +80,7 @@ module Faker
|
|
|
80
80
|
# Faker::Games::Dota.quote(hero: 'alchemist') #=> "Better living through alchemy!"
|
|
81
81
|
#
|
|
82
82
|
# @faker.version 1.9.0
|
|
83
|
-
def quote(
|
|
84
|
-
warn_for_deprecated_arguments do |keywords|
|
|
85
|
-
keywords << :hero if legacy_hero != NOT_GIVEN
|
|
86
|
-
end
|
|
87
|
-
|
|
83
|
+
def quote(hero: 'abaddon')
|
|
88
84
|
fetch("games.dota.#{hero}.quote")
|
|
89
85
|
end
|
|
90
86
|
end
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class Games
|
|
5
|
+
class FinalFantasyXIV < Base
|
|
6
|
+
class << self
|
|
7
|
+
##
|
|
8
|
+
# Produces the name of a character from FFXIV.
|
|
9
|
+
#
|
|
10
|
+
# @return [String]
|
|
11
|
+
#
|
|
12
|
+
# @example
|
|
13
|
+
# Faker::Games::FinalFantasyXIV.character #=> "Y'shtola Rhul"
|
|
14
|
+
#
|
|
15
|
+
# @faker.version next
|
|
16
|
+
def character
|
|
17
|
+
fetch('games.final_fantasy_xiv.characters')
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
##
|
|
21
|
+
# Produces a job name from Final Fantasy XIV. Either a battle or non-battle playable job.
|
|
22
|
+
#
|
|
23
|
+
# @return [String]
|
|
24
|
+
#
|
|
25
|
+
# @example
|
|
26
|
+
# Faker::Games::FinalFantasyXIV.job #=> "Paladin"
|
|
27
|
+
#
|
|
28
|
+
# @faker.version next
|
|
29
|
+
def job
|
|
30
|
+
fetch('games.final_fantasy_xiv.jobs')
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Produces the name of a playable race from Final Fantasy XIV.
|
|
34
|
+
#
|
|
35
|
+
# @return [String]
|
|
36
|
+
#
|
|
37
|
+
# @example
|
|
38
|
+
# Faker::Games::FinalFantasyXIV.race #=> "Miqo'te"
|
|
39
|
+
#
|
|
40
|
+
# @faker.version next
|
|
41
|
+
def race
|
|
42
|
+
fetch('games.final_fantasy_xiv.races')
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
##
|
|
46
|
+
# Produces a data center from Final Fantasy XIV.
|
|
47
|
+
#
|
|
48
|
+
# @return [String]
|
|
49
|
+
#
|
|
50
|
+
# @example
|
|
51
|
+
# Faker::Games::FinalFantasyXIV.data_center #=> "Aether"
|
|
52
|
+
#
|
|
53
|
+
# @faker.version next
|
|
54
|
+
def data_center
|
|
55
|
+
fetch('games.final_fantasy_xiv.data_centers')
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
##
|
|
59
|
+
# Produces a geographical zone from Final Fantasy XIV.
|
|
60
|
+
#
|
|
61
|
+
# @return [String]
|
|
62
|
+
#
|
|
63
|
+
# @example
|
|
64
|
+
# Faker::Games::FinalFantasyXIV.zone #=> "Eastern La Noscea"
|
|
65
|
+
#
|
|
66
|
+
# @faker.version next
|
|
67
|
+
def zone
|
|
68
|
+
fetch('games.final_fantasy_xiv.zones')
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
data/lib/faker/games/myst.rb
CHANGED
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class Games
|
|
5
|
+
class Tarkov < Base
|
|
6
|
+
class << self
|
|
7
|
+
##
|
|
8
|
+
# Produces a random location from Escape from Tarkov.
|
|
9
|
+
#
|
|
10
|
+
# @return [String]
|
|
11
|
+
#
|
|
12
|
+
# @example
|
|
13
|
+
# Faker::Games::Tarkov.location #=> "Customs"
|
|
14
|
+
#
|
|
15
|
+
# @faker.version next
|
|
16
|
+
def location
|
|
17
|
+
fetch('tarkov.locations')
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
##
|
|
21
|
+
# Produces a random trader from Escape from Tarkov.
|
|
22
|
+
#
|
|
23
|
+
# @return [String]
|
|
24
|
+
#
|
|
25
|
+
# @example
|
|
26
|
+
# Faker::Games::Tarkov.trader #=> "Prapor"
|
|
27
|
+
#
|
|
28
|
+
# @faker.version next
|
|
29
|
+
def trader
|
|
30
|
+
fetch('tarkov.traders')
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
##
|
|
34
|
+
# Produces a random item from Escape from Tarkov.
|
|
35
|
+
#
|
|
36
|
+
# @return [String]
|
|
37
|
+
#
|
|
38
|
+
# @example
|
|
39
|
+
# Faker::Games::Tarkov.item #=> "Diary"
|
|
40
|
+
#
|
|
41
|
+
# @faker.version next
|
|
42
|
+
def item
|
|
43
|
+
fetch('tarkov.items')
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
##
|
|
47
|
+
# Produces a random weapon from Escape from Tarkov.
|
|
48
|
+
#
|
|
49
|
+
# @return [String]
|
|
50
|
+
#
|
|
51
|
+
# @example
|
|
52
|
+
# Faker::Games::Tarkov.weapon #=> "AK-74N"
|
|
53
|
+
#
|
|
54
|
+
# @faker.version next
|
|
55
|
+
def weapon
|
|
56
|
+
fetch('tarkov.weapons')
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
##
|
|
60
|
+
# Produces a random boss from Escape from Tarkov.
|
|
61
|
+
#
|
|
62
|
+
# @return [String]
|
|
63
|
+
#
|
|
64
|
+
# @example
|
|
65
|
+
# Faker::Games::Tarkov.boss #=> "Tagilla"
|
|
66
|
+
#
|
|
67
|
+
# @faker.version next
|
|
68
|
+
def boss
|
|
69
|
+
fetch('tarkov.bosses')
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
##
|
|
73
|
+
# Produces a random faction from Escape from Tarkov.
|
|
74
|
+
#
|
|
75
|
+
# @return [String]
|
|
76
|
+
#
|
|
77
|
+
# @example
|
|
78
|
+
# Faker::Games::Tarkov.faction #=> "USEC"
|
|
79
|
+
#
|
|
80
|
+
# @faker.version next
|
|
81
|
+
def faction
|
|
82
|
+
fetch('tarkov.factions')
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
##
|
|
86
|
+
# Produces a random quest from a random trader from Escape from Tarkov.
|
|
87
|
+
#
|
|
88
|
+
# @return [String]
|
|
89
|
+
#
|
|
90
|
+
# @example
|
|
91
|
+
# Faker::Games::Tarkov.quest #=> "The Key to Success"
|
|
92
|
+
#
|
|
93
|
+
# @faker.version next
|
|
94
|
+
def quest
|
|
95
|
+
@traders = %w[prapor therapist skier peacekeeper mechanic ragman jaeger fence]
|
|
96
|
+
fetch("tarkov.quests.#{@traders.sample}")
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
##
|
|
100
|
+
# Produces a random quest from Prapor from Escape from Tarkov.
|
|
101
|
+
#
|
|
102
|
+
# @return [String]
|
|
103
|
+
#
|
|
104
|
+
# @example
|
|
105
|
+
# Faker::Games::Tarkov.prapor_quest #=> "Easy Job - Part 2
|
|
106
|
+
#
|
|
107
|
+
# @faker.version next
|
|
108
|
+
def prapor_quest
|
|
109
|
+
fetch('tarkov.quests.prapor')
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
##
|
|
113
|
+
# Produces a random quest from Therapist from Escape from Tarkov.
|
|
114
|
+
#
|
|
115
|
+
# @return [String]
|
|
116
|
+
#
|
|
117
|
+
# @example
|
|
118
|
+
# Faker::Games::Tarkov.therapist_quest #=> "Supply Plans"
|
|
119
|
+
#
|
|
120
|
+
# @faker.version next
|
|
121
|
+
def therapist_quest
|
|
122
|
+
fetch('tarkov.quests.therapist')
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
##
|
|
126
|
+
# Produces a random quest from Skier from Escape from Tarkov.
|
|
127
|
+
#
|
|
128
|
+
# @return [String]
|
|
129
|
+
#
|
|
130
|
+
# @example
|
|
131
|
+
# Faker::Games::Tarkov.skier_quest #=> "Safe Corridor"
|
|
132
|
+
#
|
|
133
|
+
# @faker.version next
|
|
134
|
+
def skier_quest
|
|
135
|
+
fetch('tarkov.quests.skier')
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
##
|
|
139
|
+
# Produces a random quest from Peacekeeper from Escape from Tarkov.
|
|
140
|
+
#
|
|
141
|
+
# @return [String]
|
|
142
|
+
#
|
|
143
|
+
# @example
|
|
144
|
+
# Faker::Games::Tarkov.peacekeeper_quest #=> "Overpopulation"
|
|
145
|
+
#
|
|
146
|
+
# @faker.version next
|
|
147
|
+
def peacekeeper_quest
|
|
148
|
+
fetch('tarkov.quests.peacekeeper')
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
##
|
|
152
|
+
# Produces a random quest from Mechanic from Escape from Tarkov.
|
|
153
|
+
#
|
|
154
|
+
# @return [String]
|
|
155
|
+
#
|
|
156
|
+
# @example
|
|
157
|
+
# Faker::Games::Tarkov.mechanic_quest #=> "Signal - Part 4"
|
|
158
|
+
#
|
|
159
|
+
# @faker.version next
|
|
160
|
+
def mechanic_quest
|
|
161
|
+
fetch('tarkov.quests.mechanic')
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
##
|
|
165
|
+
# Produces a random quest from Ragman from Escape from Tarkov.
|
|
166
|
+
#
|
|
167
|
+
# @return [String]
|
|
168
|
+
#
|
|
169
|
+
# @example
|
|
170
|
+
# Faker::Games::Tarkov.ragman_quest #=> "Hot Delivery"
|
|
171
|
+
#
|
|
172
|
+
# @faker.version next
|
|
173
|
+
def ragman_quest
|
|
174
|
+
fetch('tarkov.quests.ragman')
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
##
|
|
178
|
+
# Produces a random quest from Jaeger from Escape from Tarkov.
|
|
179
|
+
#
|
|
180
|
+
# @return [String]
|
|
181
|
+
#
|
|
182
|
+
# @example
|
|
183
|
+
# Faker::Games::Tarkov.jaeger_quest #=> "The Tarkov Shooter - Part 1"
|
|
184
|
+
#
|
|
185
|
+
# @faker.version next
|
|
186
|
+
def jaeger_quest
|
|
187
|
+
fetch('tarkov.quests.jaeger')
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
##
|
|
191
|
+
# Produces a random quest from Fence from Escape from Tarkov.
|
|
192
|
+
#
|
|
193
|
+
# @return [String]
|
|
194
|
+
#
|
|
195
|
+
# @example
|
|
196
|
+
# Faker::Games::Tarkov.fence_quest #=> "Compensation for Damage - Wager"
|
|
197
|
+
#
|
|
198
|
+
# @faker.version next
|
|
199
|
+
def fence_quest
|
|
200
|
+
fetch('tarkov.quests.fence')
|
|
201
|
+
end
|
|
202
|
+
end
|
|
203
|
+
end
|
|
204
|
+
end
|
|
205
|
+
end
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class JapaneseMedia
|
|
5
|
+
class CowboyBebop < Base
|
|
6
|
+
class << self
|
|
7
|
+
##
|
|
8
|
+
# Produces a character from Cowboy Bebop.
|
|
9
|
+
#
|
|
10
|
+
# @return [String]
|
|
11
|
+
#
|
|
12
|
+
# @example
|
|
13
|
+
# Faker::JapaneseMedia::CowboyBebop.character #=> "Spike Spiegel"
|
|
14
|
+
#
|
|
15
|
+
# @faker.version next
|
|
16
|
+
def character
|
|
17
|
+
fetch('cowboy_bebop.character')
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
##
|
|
21
|
+
# Produces an episode from Cowboy Bebop.
|
|
22
|
+
#
|
|
23
|
+
# @return [String]
|
|
24
|
+
#
|
|
25
|
+
# @example
|
|
26
|
+
# Faker::JapaneseMedia::CowboyBebop.episode #=> "Honky Tonk Women"
|
|
27
|
+
#
|
|
28
|
+
# @faker.version next
|
|
29
|
+
def episode
|
|
30
|
+
fetch('cowboy_bebop.episode')
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
##
|
|
34
|
+
# Produces a song title from Cowboy Bebop.
|
|
35
|
+
#
|
|
36
|
+
# @return [String]
|
|
37
|
+
#
|
|
38
|
+
# @example
|
|
39
|
+
# Faker::JapaneseMedia::CowboyBebop.songs #=> "Live in Baghdad"
|
|
40
|
+
#
|
|
41
|
+
# @faker.version next
|
|
42
|
+
def song
|
|
43
|
+
fetch('cowboy_bebop.song')
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
##
|
|
47
|
+
# Produces a quote from Cowboy Bebop.
|
|
48
|
+
#
|
|
49
|
+
# @return [String]
|
|
50
|
+
#
|
|
51
|
+
# @example
|
|
52
|
+
# Faker::JapaneseMedia::CowboyBebop.quote #=> "Bang!!!"
|
|
53
|
+
#
|
|
54
|
+
# @faker.version next
|
|
55
|
+
def quote
|
|
56
|
+
fetch('cowboy_bebop.quote')
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
@@ -83,14 +83,14 @@ module Faker
|
|
|
83
83
|
end
|
|
84
84
|
|
|
85
85
|
def from_eras(*input_eras, field:)
|
|
86
|
-
selected_eras = (ERAS & input_eras).
|
|
86
|
+
selected_eras = (ERAS & input_eras).then do |selected|
|
|
87
87
|
selected.empty? ? eras : selected
|
|
88
88
|
end.dup
|
|
89
89
|
yield(selected_eras) if block_given?
|
|
90
90
|
|
|
91
91
|
raise UnavailableInEra, "#{field} is unavailable in the selected eras." if selected_eras.empty?
|
|
92
92
|
|
|
93
|
-
selected_eras.sample.
|
|
93
|
+
selected_eras.sample.then do |era|
|
|
94
94
|
fetch("kamen_rider.#{era}.#{field}")
|
|
95
95
|
end
|
|
96
96
|
end
|