faker 2.19.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 +346 -7
- data/History.md +1 -1
- data/README.md +198 -104
- 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/books/the_kingkiller_chronicle.rb +61 -0
- 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 +8 -14
- data/lib/faker/default/code.rb +11 -24
- data/lib/faker/default/color.rb +77 -6
- data/lib/faker/default/commerce.rb +3 -17
- data/lib/faker/default/company.rb +23 -20
- data/lib/faker/default/crypto_coin.rb +3 -15
- data/lib/faker/default/date.rb +5 -38
- data/lib/faker/default/demographic.rb +1 -5
- data/lib/faker/default/driving_licence.rb +1 -11
- 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/id_number.rb +108 -11
- data/lib/faker/default/internet.rb +168 -129
- data/lib/faker/default/invoice.rb +4 -17
- data/lib/faker/default/json.rb +2 -20
- data/lib/faker/default/lorem.rb +20 -76
- 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/nation.rb +0 -3
- data/lib/faker/default/nhs.rb +2 -6
- data/lib/faker/default/number.rb +10 -55
- data/lib/faker/default/omniauth.rb +51 -41
- 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/religion.rb +6 -0
- data/lib/faker/default/source.rb +3 -16
- data/lib/faker/default/string.rb +1 -8
- data/lib/faker/default/stripe.rb +4 -20
- data/lib/faker/default/time.rb +4 -34
- data/lib/faker/default/twitter.rb +7 -23
- data/lib/faker/default/types.rb +5 -27
- data/lib/faker/default/vehicle.rb +29 -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/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/fullmetal_alchemist_brotherhood.rb +48 -0
- data/lib/faker/japanese_media/kamen_rider.rb +102 -0
- 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/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/travel/airport.rb +43 -0
- data/lib/faker/tv_shows/brooklyn_nine_nine.rb +38 -0
- data/lib/faker/tv_shows/michael_scott.rb +0 -3
- data/lib/faker/tv_shows/spongebob.rb +50 -0
- data/lib/faker/version.rb +1 -1
- data/lib/faker.rb +15 -64
- data/lib/helpers/base58.rb +1 -1
- data/lib/helpers/unique_generator.rb +13 -11
- 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 +3 -4
- data/lib/locales/de-CH.yml +1 -1
- data/lib/locales/de.yml +1 -1
- data/lib/locales/en/address.yml +2 -3
- data/lib/locales/en/airport.yml +381 -0
- data/lib/locales/en/australia.yml +3 -4
- data/lib/locales/en/avatar.yml +31 -0
- data/lib/locales/en/bible.yml +90 -0
- data/lib/locales/en/brooklyn_nine_nine.yml +35 -0
- data/lib/locales/en/cat.yml +1 -1
- data/lib/locales/en/chess.yml +103 -0
- data/lib/locales/en/coffee.yml +1 -1
- 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/finance.yml +3 -1
- data/lib/locales/en/fma_brotherhood.yml +78 -0
- data/lib/locales/en/food.yml +12 -0
- data/lib/locales/en/game.yml +11 -0
- data/lib/locales/en/hackers.yml +53 -0
- data/lib/locales/en/heroes.yml +2 -2
- data/lib/locales/en/internet.yml +140 -3
- data/lib/locales/en/kamen_rider.yml +452 -0
- data/lib/locales/en/mitch_hedberg.yml +46 -0
- data/lib/locales/en/mountain.yml +14 -1
- 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 +1 -1
- data/lib/locales/en/overwatch.yml +5 -7
- data/lib/locales/en/source.yml +5 -0
- 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/stranger_thing.yml +1 -1
- data/lib/locales/en/super_smash_bros.yml +2 -0
- data/lib/locales/en/tarkov.yml +593 -0
- data/lib/locales/en/the_kingkiller_chronicle.yml +56 -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 +2 -2
- 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-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/address.yml +258 -4169
- 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/lorem.yml +2 -2
- data/lib/locales/ja/naruto.yml +230 -0
- data/lib/locales/ja/relationship.yml +10 -0
- data/lib/locales/ja/super_mario.yml +1 -1
- data/lib/locales/ja/super_smash_bros.yml +8 -0
- data/lib/locales/ko.yml +1 -0
- 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 +1 -0
- data/lib/locales/nl.yml +1 -0
- data/lib/locales/pl.yml +2 -2
- data/lib/locales/pt-BR.yml +5 -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 +1 -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 +96 -33
- 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
data/lib/faker/default/types.rb
CHANGED
@@ -16,11 +16,7 @@ module Faker
|
|
16
16
|
# Faker::Types.rb_string #=> "foobar"
|
17
17
|
#
|
18
18
|
# @faker.version 1.8.6
|
19
|
-
def rb_string(
|
20
|
-
warn_for_deprecated_arguments do |keywords|
|
21
|
-
keywords << :words if legacy_words != NOT_GIVEN
|
22
|
-
end
|
23
|
-
|
19
|
+
def rb_string(words: 1)
|
24
20
|
resolved_num = resolve(words)
|
25
21
|
word_list =
|
26
22
|
translate('faker.lorem.words')
|
@@ -51,12 +47,7 @@ module Faker
|
|
51
47
|
# Faker::Types.rb_integer #=> 1
|
52
48
|
#
|
53
49
|
# @faker.version 1.8.6
|
54
|
-
def rb_integer(
|
55
|
-
warn_for_deprecated_arguments do |keywords|
|
56
|
-
keywords << :from if legacy_from != NOT_GIVEN
|
57
|
-
keywords << :to if legacy_to != NOT_GIVEN
|
58
|
-
end
|
59
|
-
|
50
|
+
def rb_integer(from: 0, to: 100)
|
60
51
|
rand(from..to).to_i
|
61
52
|
end
|
62
53
|
|
@@ -72,12 +63,7 @@ module Faker
|
|
72
63
|
# Faker::Types.rb_hash(number: 2) #=> {name: "bob", last: "marley"}
|
73
64
|
#
|
74
65
|
# @faker.version 1.8.6
|
75
|
-
def rb_hash(
|
76
|
-
warn_for_deprecated_arguments do |keywords|
|
77
|
-
keywords << :number if legacy_number != NOT_GIVEN
|
78
|
-
keywords << :type if legacy_type != NOT_GIVEN
|
79
|
-
end
|
80
|
-
|
66
|
+
def rb_hash(number: 1, type: -> { random_type })
|
81
67
|
{}.tap do |hsh|
|
82
68
|
Lorem.words(number: number * 2).uniq.first(number).each do |s|
|
83
69
|
value = type.is_a?(Proc) ? type.call : type
|
@@ -98,11 +84,7 @@ module Faker
|
|
98
84
|
# Faker::Types.complex_rb_hash(number: 2) #=> {user: {first: "bob", last: "marley"}, son: ["damien", "marley"]}
|
99
85
|
#
|
100
86
|
# @faker.version 1.8.6
|
101
|
-
def complex_rb_hash(
|
102
|
-
warn_for_deprecated_arguments do |keywords|
|
103
|
-
keywords << :number if legacy_number != NOT_GIVEN
|
104
|
-
end
|
105
|
-
|
87
|
+
def complex_rb_hash(number: 1)
|
106
88
|
rb_hash(number: number, type: -> { random_complex_type })
|
107
89
|
end
|
108
90
|
|
@@ -117,11 +99,7 @@ module Faker
|
|
117
99
|
# Faker::Types.rb_array(len: 4) #=> ["a", 1, 2, "bob"]
|
118
100
|
#
|
119
101
|
# @faker.version 1.8.6
|
120
|
-
def rb_array(
|
121
|
-
warn_for_deprecated_arguments do |keywords|
|
122
|
-
keywords << :len if legacy_len != NOT_GIVEN
|
123
|
-
end
|
124
|
-
|
102
|
+
def rb_array(len: 1)
|
125
103
|
[].tap do |ar|
|
126
104
|
len.times do
|
127
105
|
ar.push random_type
|
@@ -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,14 @@ module Faker
|
|
23
22
|
#
|
24
23
|
# @faker.version 1.6.4
|
25
24
|
def vin
|
26
|
-
|
25
|
+
front = 8.times.map { VIN_KEYSPACE.sample(random: Faker::Config.random) }.join
|
26
|
+
back = 8.times.map { VIN_KEYSPACE.sample(random: Faker::Config.random) }.join
|
27
|
+
checksum = "#{front}A#{back}".chars.each_with_index.map do |char, i|
|
28
|
+
value = (char =~ /\A\d\z/ ? char.to_i : VIN_TRANSLITERATION[char.to_sym])
|
29
|
+
value * VIN_WEIGHT[i]
|
30
|
+
end.inject(:+) % 11
|
31
|
+
checksum = 'X' if checksum == 10
|
32
|
+
"#{front}#{checksum}#{back}"
|
27
33
|
end
|
28
34
|
|
29
35
|
# Produces a random vehicle manufacturer.
|
@@ -62,11 +68,7 @@ module Faker
|
|
62
68
|
# Faker::Vehicle.model(make_of_model: 'Toyota') #=> "Prius"
|
63
69
|
#
|
64
70
|
# @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
|
-
|
71
|
+
def model(make_of_model: '')
|
70
72
|
return fetch("vehicle.models_by_make.#{make}") if make_of_model.empty?
|
71
73
|
|
72
74
|
fetch("vehicle.models_by_make.#{make_of_model}")
|
@@ -249,12 +251,7 @@ module Faker
|
|
249
251
|
# Faker::Vehicle.kilometrage #=> 35378
|
250
252
|
#
|
251
253
|
# @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
|
-
|
254
|
+
def mileage(min: MILEAGE_MIN, max: MILEAGE_MAX)
|
258
255
|
rand_in_range(min, max)
|
259
256
|
end
|
260
257
|
|
@@ -271,11 +268,7 @@ module Faker
|
|
271
268
|
# Faker::Vehicle.license_plate(state_abbreviation: 'FL') #=> "977 UNU"
|
272
269
|
#
|
273
270
|
# @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
|
-
|
271
|
+
def license_plate(state_abbreviation: '')
|
279
272
|
return regexify(bothify(fetch('vehicle.license_plate'))) if state_abbreviation.empty?
|
280
273
|
|
281
274
|
key = "vehicle.license_plate_by_state.#{state_abbreviation}"
|
@@ -297,45 +290,30 @@ module Faker
|
|
297
290
|
"#{plate_number}#{singapore_checksum(plate_number)}"
|
298
291
|
end
|
299
292
|
|
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
|
293
|
+
##
|
294
|
+
# Produces a car version
|
295
|
+
#
|
296
|
+
# @return [String]
|
297
|
+
#
|
298
|
+
# @example
|
299
|
+
# Faker::Vehicle.version #=> "40 TFSI Premium"
|
300
|
+
#
|
301
|
+
# @faker.version next
|
302
|
+
def version
|
303
|
+
fetch('vehicle.version')
|
320
304
|
end
|
321
305
|
|
322
|
-
|
323
|
-
index = VIN_LETTERS.split('').index(char)
|
324
|
-
|
325
|
-
return char.to_i if index.nil?
|
326
|
-
|
327
|
-
VIN_MAP[index]
|
328
|
-
end
|
306
|
+
private
|
329
307
|
|
330
308
|
def singapore_checksum(plate_number)
|
331
|
-
padded_alphabets = format('%3s', plate_number[/^[A-Z]+/]).tr(' ', '-').
|
332
|
-
padded_digits = format('%04d', plate_number[/\d+/]).
|
309
|
+
padded_alphabets = format('%3s', plate_number[/^[A-Z]+/]).tr(' ', '-').chars
|
310
|
+
padded_digits = format('%04d', plate_number[/\d+/]).chars.map(&:to_i)
|
333
311
|
sum = [*padded_alphabets, *padded_digits].each_with_index.reduce(0) do |memo, (char, i)|
|
334
312
|
value = char.is_a?(Integer) ? char : char.ord - 64
|
335
313
|
memo + (SG_CHECKSUM_WEIGHTS[i] * value)
|
336
314
|
end
|
337
315
|
|
338
|
-
SG_CHECKSUM_CHARS.
|
316
|
+
SG_CHECKSUM_CHARS.chars[sum % 19]
|
339
317
|
end
|
340
318
|
end
|
341
319
|
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
|
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
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class JapaneseMedia
|
5
|
+
class FmaBrotherhood < Base
|
6
|
+
class << self
|
7
|
+
##
|
8
|
+
# Produces a character from FmaBrotherhood.
|
9
|
+
#
|
10
|
+
# @return [String]
|
11
|
+
#
|
12
|
+
# @example
|
13
|
+
# Faker::JapaneseMedia::FmaBrotherhood.character #=> "Edward Elric"
|
14
|
+
#
|
15
|
+
# @faker.version next
|
16
|
+
def character
|
17
|
+
fetch('fma_brotherhood.characters')
|
18
|
+
end
|
19
|
+
|
20
|
+
##
|
21
|
+
# Produces a cities from FmaBrotherhood.
|
22
|
+
#
|
23
|
+
# @return [String]
|
24
|
+
#
|
25
|
+
# @example
|
26
|
+
# Faker::JapaneseMedia::FmaBrotherhood.city #=> "Central City"
|
27
|
+
#
|
28
|
+
# @faker.version next
|
29
|
+
def city
|
30
|
+
fetch('fma_brotherhood.cities')
|
31
|
+
end
|
32
|
+
|
33
|
+
##
|
34
|
+
# Produces a country from FmaBrotherhood.
|
35
|
+
#
|
36
|
+
# @return [String]
|
37
|
+
#
|
38
|
+
# @example
|
39
|
+
# Faker::JapaneseMedia::FmaBrotherhood.country #=> "Xing"
|
40
|
+
#
|
41
|
+
# @faker.version next
|
42
|
+
def country
|
43
|
+
fetch('fma_brotherhood.countries')
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|