faker 2.12.0 → 2.16.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 +240 -0
- data/History.md +4 -4
- data/README.md +18 -1
- data/lib/faker.rb +14 -14
- data/lib/faker/blockchain/aeternity.rb +4 -4
- data/lib/faker/blockchain/tezos.rb +28 -0
- data/lib/faker/books/dune.rb +15 -2
- data/lib/faker/books/lovecraft.rb +8 -4
- data/lib/faker/default/address.rb +34 -4
- data/lib/faker/default/app.rb +1 -1
- data/lib/faker/default/avatar.rb +1 -1
- data/lib/faker/default/bank.rb +4 -6
- data/lib/faker/default/barcode.rb +165 -0
- data/lib/faker/default/beer.rb +3 -3
- data/lib/faker/default/blood.rb +3 -3
- data/lib/faker/default/camera.rb +46 -0
- data/lib/faker/default/cannabis.rb +10 -0
- data/lib/faker/default/chile_rut.rb +47 -3
- data/lib/faker/default/chuck_norris.rb +1 -0
- data/lib/faker/default/code.rb +98 -17
- data/lib/faker/default/commerce.rb +1 -1
- data/lib/faker/default/company.rb +57 -11
- data/lib/faker/default/computer.rb +4 -4
- data/lib/faker/default/date.rb +16 -12
- data/lib/faker/default/driving_licence.rb +26 -2
- data/lib/faker/default/drone.rb +332 -0
- data/lib/faker/default/faker_adjective.rb +35 -0
- data/lib/faker/default/file.rb +6 -4
- data/lib/faker/default/finance.rb +21 -0
- data/lib/faker/default/food.rb +1 -1
- data/lib/faker/default/gender.rb +1 -1
- data/lib/faker/default/hipster.rb +14 -11
- data/lib/faker/default/id_number.rb +88 -2
- data/lib/faker/default/internet.rb +266 -12
- data/lib/faker/default/internet_http.rb +48 -0
- data/lib/faker/default/invoice.rb +1 -1
- data/lib/faker/default/json.rb +7 -6
- data/lib/faker/default/lorem.rb +160 -5
- data/lib/faker/default/lorem_flickr.rb +67 -7
- data/lib/faker/default/lorem_pixel.rb +23 -0
- data/lib/faker/default/markdown.rb +91 -0
- data/lib/faker/default/measurement.rb +3 -2
- data/lib/faker/default/military.rb +26 -0
- data/lib/faker/default/mountain.rb +33 -0
- data/lib/faker/default/name.rb +15 -0
- data/lib/faker/default/nhs.rb +19 -0
- data/lib/faker/default/number.rb +6 -8
- data/lib/faker/default/omniauth.rb +62 -14
- data/lib/faker/default/placeholdit.rb +3 -2
- data/lib/faker/default/relationship.rb +1 -1
- data/lib/faker/default/space.rb +1 -1
- data/lib/faker/default/string.rb +3 -2
- data/lib/faker/default/stripe.rb +3 -3
- data/lib/faker/default/vehicle.rb +1 -1
- 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 +9 -9
- data/lib/faker/games/dnd.rb +91 -16
- 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/touhou.rb +75 -0
- data/lib/faker/games/warhammer_fantasy.rb +5 -5
- 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 +3 -3
- 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 +74 -2
- data/lib/faker/music/hiphop.rb +48 -0
- data/lib/faker/music/opera.rb +237 -1
- data/lib/faker/music/pearl_jam.rb +3 -3
- data/lib/faker/music/phish.rb +2 -2
- 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 +3 -3
- data/lib/faker/quotes/quote.rb +26 -0
- data/lib/faker/quotes/rajnikanth.rb +1 -0
- data/lib/faker/quotes/shakespeare.rb +34 -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 +3 -3
- 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 +20 -26
- data/lib/helpers/unique_generator.rb +3 -2
- data/lib/locales/de-AT.yml +4 -2
- data/lib/locales/de-CH.yml +3 -1
- data/lib/locales/de.yml +4 -2
- data/lib/locales/en-AU.yml +8 -2
- 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 +10 -10
- data/lib/locales/en-au-ocker.yml +2 -1
- data/lib/locales/en.yml +0 -3
- 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/buffy.yml +1 -1
- data/lib/locales/en/camera.yml +611 -0
- data/lib/locales/en/clash_of_clan.yml +101 -0
- data/lib/locales/en/company.yml +2 -2
- data/lib/locales/en/conan.yml +171 -0
- data/lib/locales/en/demographic.yml +218 -5
- data/lib/locales/en/dnd.yml +430 -33
- 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/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/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/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/lebowski.yml +1 -1
- 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 +5 -4
- data/lib/locales/en/naruto.yml +231 -0
- data/lib/locales/en/opera.yml +168 -0
- data/lib/locales/en/overwatch.yml +2650 -2622
- 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/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 +1 -0
- data/lib/locales/en/street_fighter.yml +1524 -0
- data/lib/locales/en/studio_ghibli.yml +107 -0
- data/lib/locales/en/super_mario.yml +58 -0
- data/lib/locales/en/super_smash_bros.yml +18 -4
- data/lib/locales/en/tolkien.yml +2453 -0
- data/lib/locales/en/touhou.yml +839 -0
- data/lib/locales/en/volleyball.yml +501 -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 +19 -5
- data/lib/locales/fr-CH.yml +2 -2
- data/lib/locales/fr.yml +12 -6
- data/lib/locales/id.yml +3 -1
- data/lib/locales/it.yml +2 -1
- data/lib/locales/ja.yml +10 -1
- data/lib/locales/ko.yml +34 -24
- data/lib/locales/nb-NO.yml +4 -2
- data/lib/locales/pt-BR.yml +1 -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 +66 -18
- data/lib/locales/en/hobbit.yml +0 -19
- data/lib/locales/en/lord_of_the_rings.yml +0 -6
data/lib/faker/default/beer.rb
CHANGED
|
@@ -80,7 +80,7 @@ module Faker
|
|
|
80
80
|
#
|
|
81
81
|
# @faker.version 1.6.2
|
|
82
82
|
def ibu
|
|
83
|
-
rand(10..100)
|
|
83
|
+
"#{rand(10..100)} IBU"
|
|
84
84
|
end
|
|
85
85
|
|
|
86
86
|
##
|
|
@@ -93,7 +93,7 @@ module Faker
|
|
|
93
93
|
#
|
|
94
94
|
# @faker.version 1.6.2
|
|
95
95
|
def alcohol
|
|
96
|
-
rand(2.0..10.0).round(1)
|
|
96
|
+
"#{rand(2.0..10.0).round(1)}%"
|
|
97
97
|
end
|
|
98
98
|
|
|
99
99
|
##
|
|
@@ -106,7 +106,7 @@ module Faker
|
|
|
106
106
|
#
|
|
107
107
|
# @faker.version 1.6.2
|
|
108
108
|
def blg
|
|
109
|
-
rand(5.0..20.0).round(1)
|
|
109
|
+
"#{rand(5.0..20.0).round(1)}°Blg"
|
|
110
110
|
end
|
|
111
111
|
end
|
|
112
112
|
end
|
data/lib/faker/default/blood.rb
CHANGED
|
@@ -13,7 +13,7 @@ module Faker
|
|
|
13
13
|
# @example
|
|
14
14
|
# Faker::Blood.type #=> "AB"
|
|
15
15
|
#
|
|
16
|
-
# @faker.version
|
|
16
|
+
# @faker.version 2.13.0
|
|
17
17
|
def type
|
|
18
18
|
fetch('blood.type')
|
|
19
19
|
end
|
|
@@ -26,7 +26,7 @@ module Faker
|
|
|
26
26
|
# @example
|
|
27
27
|
# Faker::Blood.rh_factor #=> "-"
|
|
28
28
|
#
|
|
29
|
-
# @faker.version
|
|
29
|
+
# @faker.version 2.13.0
|
|
30
30
|
def rh_factor
|
|
31
31
|
fetch('blood.rh_factor')
|
|
32
32
|
end
|
|
@@ -39,7 +39,7 @@ module Faker
|
|
|
39
39
|
# @example
|
|
40
40
|
# Faker::Blood.group #=> "AB-"
|
|
41
41
|
#
|
|
42
|
-
# @faker.version
|
|
42
|
+
# @faker.version 2.13.0
|
|
43
43
|
def group
|
|
44
44
|
parse('blood.group')
|
|
45
45
|
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Faker
|
|
4
|
+
class Camera < Base
|
|
5
|
+
class << self
|
|
6
|
+
##
|
|
7
|
+
# Produces a brand of a camera
|
|
8
|
+
#
|
|
9
|
+
# @return [String]
|
|
10
|
+
#
|
|
11
|
+
# @example
|
|
12
|
+
# Faker::Camera.brand #=> "Canon"
|
|
13
|
+
#
|
|
14
|
+
# @faker.version next
|
|
15
|
+
def brand
|
|
16
|
+
fetch('camera.brand')
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
##
|
|
20
|
+
# Produces a model of camera
|
|
21
|
+
#
|
|
22
|
+
# @return [String]
|
|
23
|
+
#
|
|
24
|
+
# @example
|
|
25
|
+
# Faker::Camera.model #=> "450D"
|
|
26
|
+
#
|
|
27
|
+
# @faker.version next
|
|
28
|
+
def model
|
|
29
|
+
fetch('camera.model')
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
##
|
|
33
|
+
# Produces a brand with model
|
|
34
|
+
#
|
|
35
|
+
# @return [String]
|
|
36
|
+
#
|
|
37
|
+
# @example
|
|
38
|
+
# Faker::Camera.brand_with_model #=> "Canon 450D"
|
|
39
|
+
#
|
|
40
|
+
# @faker.version next
|
|
41
|
+
def brand_with_model
|
|
42
|
+
fetch('camera.brand_with_model')
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
module Faker
|
|
4
4
|
class Cannabis < Base
|
|
5
|
+
##
|
|
5
6
|
# Produces a random strain.
|
|
6
7
|
#
|
|
7
8
|
# @return [String]
|
|
@@ -14,6 +15,7 @@ module Faker
|
|
|
14
15
|
fetch('cannabis.strains')
|
|
15
16
|
end
|
|
16
17
|
|
|
18
|
+
##
|
|
17
19
|
# Produces a random abbreviation.
|
|
18
20
|
#
|
|
19
21
|
# @return [String]
|
|
@@ -26,6 +28,7 @@ module Faker
|
|
|
26
28
|
fetch('cannabis.cannabinoid_abbreviations')
|
|
27
29
|
end
|
|
28
30
|
|
|
31
|
+
##
|
|
29
32
|
# Produces a random cannabinoid type.
|
|
30
33
|
#
|
|
31
34
|
# @return [String]
|
|
@@ -38,6 +41,7 @@ module Faker
|
|
|
38
41
|
fetch('cannabis.cannabinoids')
|
|
39
42
|
end
|
|
40
43
|
|
|
44
|
+
##
|
|
41
45
|
# Produces a random terpene type.
|
|
42
46
|
#
|
|
43
47
|
# @return [String]
|
|
@@ -50,6 +54,7 @@ module Faker
|
|
|
50
54
|
fetch('cannabis.terpenes')
|
|
51
55
|
end
|
|
52
56
|
|
|
57
|
+
##
|
|
53
58
|
# Produces a random kind of medical use.
|
|
54
59
|
#
|
|
55
60
|
# @return [String]
|
|
@@ -62,6 +67,7 @@ module Faker
|
|
|
62
67
|
fetch('cannabis.medical_uses')
|
|
63
68
|
end
|
|
64
69
|
|
|
70
|
+
##
|
|
65
71
|
# Produces a random health benefit.
|
|
66
72
|
#
|
|
67
73
|
# @return [String]
|
|
@@ -74,6 +80,7 @@ module Faker
|
|
|
74
80
|
fetch('cannabis.health_benefits')
|
|
75
81
|
end
|
|
76
82
|
|
|
83
|
+
##
|
|
77
84
|
# Produces a random category.
|
|
78
85
|
#
|
|
79
86
|
# @return [String]
|
|
@@ -86,6 +93,7 @@ module Faker
|
|
|
86
93
|
fetch('cannabis.categories')
|
|
87
94
|
end
|
|
88
95
|
|
|
96
|
+
##
|
|
89
97
|
# Produces a random type.
|
|
90
98
|
#
|
|
91
99
|
# @return [String]
|
|
@@ -98,6 +106,7 @@ module Faker
|
|
|
98
106
|
fetch('cannabis.types')
|
|
99
107
|
end
|
|
100
108
|
|
|
109
|
+
##
|
|
101
110
|
# Produces a random buzzword.
|
|
102
111
|
#
|
|
103
112
|
# @return [String]
|
|
@@ -110,6 +119,7 @@ module Faker
|
|
|
110
119
|
fetch('cannabis.buzzwords')
|
|
111
120
|
end
|
|
112
121
|
|
|
122
|
+
##
|
|
113
123
|
# Produces a random brand.
|
|
114
124
|
#
|
|
115
125
|
# @return [String]
|
|
@@ -5,7 +5,19 @@ module Faker
|
|
|
5
5
|
class << self
|
|
6
6
|
@last_rut = nil
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
##
|
|
9
|
+
# Produces a random Chilean RUT (Rol Unico Tributario, ID with 8 digits).
|
|
10
|
+
#
|
|
11
|
+
# @param min_rut [Integer] Specifies the minimum value of the rut.
|
|
12
|
+
# @param fixed [Boolean] Determines if the rut is fixed (returns the min_rut value).
|
|
13
|
+
# @return [Number]
|
|
14
|
+
#
|
|
15
|
+
# @example
|
|
16
|
+
# Faker::ChileRut.rut #=> 11235813
|
|
17
|
+
# Faker::ChileRut.rut(min_rut: 20890156) #=> 31853211
|
|
18
|
+
# Faker::ChileRut.rut(min_rut: 20890156, fixed: true) #=> 20890156
|
|
19
|
+
#
|
|
20
|
+
# @faker.version 1.9.2
|
|
9
21
|
def rut(legacy_min_rut = NOT_GIVEN, legacy_fixed = NOT_GIVEN, min_rut: 1, fixed: false)
|
|
10
22
|
warn_for_deprecated_arguments do |keywords|
|
|
11
23
|
keywords << :min_rut if legacy_min_rut != NOT_GIVEN
|
|
@@ -15,6 +27,15 @@ module Faker
|
|
|
15
27
|
@last_rut = fixed ? min_rut : rand_in_range(min_rut, 99_999_999)
|
|
16
28
|
end
|
|
17
29
|
|
|
30
|
+
##
|
|
31
|
+
# Produces a random Chilean digito verificador (check-digit).
|
|
32
|
+
#
|
|
33
|
+
# @return [String]
|
|
34
|
+
#
|
|
35
|
+
# @example
|
|
36
|
+
# Faker::ChileRut.dv #=> "k"
|
|
37
|
+
#
|
|
38
|
+
# @faker.version 1.9.2
|
|
18
39
|
def dv
|
|
19
40
|
split_reversed_rut = @last_rut.to_s.reverse.split('')
|
|
20
41
|
seq = [2, 3, 4, 5, 6, 7]
|
|
@@ -25,20 +46,43 @@ module Faker
|
|
|
25
46
|
partial_result
|
|
26
47
|
end
|
|
27
48
|
partial_check_digit = 11 - (digit_sum % 11)
|
|
28
|
-
|
|
49
|
+
case partial_check_digit
|
|
50
|
+
when 11
|
|
29
51
|
'0'
|
|
30
|
-
|
|
52
|
+
when 10
|
|
31
53
|
'k'
|
|
32
54
|
else
|
|
33
55
|
partial_check_digit.to_s
|
|
34
56
|
end
|
|
35
57
|
end
|
|
36
58
|
|
|
59
|
+
##
|
|
60
|
+
# Produces a random Chilean digito verificador (check-digit).
|
|
37
61
|
# Alias for english speaking devs.
|
|
62
|
+
#
|
|
63
|
+
# @return [String]
|
|
64
|
+
#
|
|
65
|
+
# @example
|
|
66
|
+
# Faker::ChileRut.check_digit #=> "5"
|
|
67
|
+
#
|
|
68
|
+
# @faker.version 1.9.2
|
|
38
69
|
def check_digit
|
|
39
70
|
dv
|
|
40
71
|
end
|
|
41
72
|
|
|
73
|
+
##
|
|
74
|
+
# Produces a random Chilean RUT (Rol Unico Tributario, ID with 8 digits) with a dv (digito verificador, check-digit).
|
|
75
|
+
#
|
|
76
|
+
# @param min_rut [Integer] Specifies the minimum value of the rut.
|
|
77
|
+
# @param fixed [Boolean] Determines if the rut is fixed (returns the min_rut value).
|
|
78
|
+
# @return [String]
|
|
79
|
+
#
|
|
80
|
+
# @example
|
|
81
|
+
# Faker::ChileRut.full_rut #=> "30686957-4"
|
|
82
|
+
# Faker::ChileRut.full_rut(min_rut: 20890156) #=> "30686957-4"
|
|
83
|
+
# Faker::ChileRut.full_rut(min_rut: 30686957, fixed: true) #=> "30686957-4"
|
|
84
|
+
#
|
|
85
|
+
# @faker.version 1.9.2
|
|
42
86
|
def full_rut(legacy_min_rut = NOT_GIVEN, legacy_fixed = NOT_GIVEN, min_rut: 0, fixed: false)
|
|
43
87
|
warn_for_deprecated_arguments do |keywords|
|
|
44
88
|
keywords << :min_rut if legacy_min_rut != NOT_GIVEN
|
data/lib/faker/default/code.rb
CHANGED
|
@@ -4,40 +4,101 @@ module Faker
|
|
|
4
4
|
class Code < Base
|
|
5
5
|
flexible :code
|
|
6
6
|
class << self
|
|
7
|
-
|
|
8
|
-
#
|
|
7
|
+
##
|
|
8
|
+
# Produces a random NPI (National Provider Identifer) code.
|
|
9
|
+
#
|
|
10
|
+
# @return [String]
|
|
11
|
+
#
|
|
12
|
+
# @example
|
|
13
|
+
# Faker::Code.npi #=> "9804062802"
|
|
14
|
+
#
|
|
15
|
+
# @faker.version 1.9.4
|
|
9
16
|
def npi
|
|
10
17
|
rand(10**10).to_s.rjust(10, '0')
|
|
11
18
|
end
|
|
12
19
|
|
|
13
|
-
|
|
14
|
-
#
|
|
20
|
+
##
|
|
21
|
+
# Produces a random ISBN (International Standard Book Number) code.
|
|
22
|
+
#
|
|
23
|
+
# @param base [Integer] the length of the code to generate (either 10 or 13)
|
|
24
|
+
# @return [String]
|
|
25
|
+
#
|
|
26
|
+
# @example
|
|
27
|
+
# Faker::Code.isbn(base: 13) #=> "896579606969-8"
|
|
28
|
+
# @example
|
|
29
|
+
# Faker::Code.isbn #=> "170366802-2"
|
|
30
|
+
#
|
|
31
|
+
# @faker.version 2.2.0
|
|
15
32
|
def isbn(legacy_base = NOT_GIVEN, base: 10)
|
|
16
33
|
warn_for_deprecated_arguments do |keywords|
|
|
17
34
|
keywords << :base if legacy_base != NOT_GIVEN
|
|
18
35
|
end
|
|
19
36
|
|
|
20
|
-
base
|
|
37
|
+
case base
|
|
38
|
+
when 10 then generate_base10_isbn
|
|
39
|
+
when 13 then generate_base13_isbn
|
|
40
|
+
else raise ArgumentError, 'base must be 10 or 13'
|
|
41
|
+
end
|
|
21
42
|
end
|
|
22
43
|
|
|
23
|
-
|
|
24
|
-
#
|
|
44
|
+
##
|
|
45
|
+
# Produces a random EAN (European Article Number) code.
|
|
46
|
+
#
|
|
47
|
+
# @param base [Integer] the length of the code to generate (either 8 or 13)
|
|
48
|
+
# @return [String]
|
|
49
|
+
#
|
|
50
|
+
# @example
|
|
51
|
+
# Faker::Code.ean(base: 8) #=> "36941070"
|
|
52
|
+
# @example
|
|
53
|
+
# Faker::Code.ean #=> "9941880131907"
|
|
54
|
+
#
|
|
55
|
+
# @faker.version 2.2.0
|
|
25
56
|
def ean(legacy_base = NOT_GIVEN, base: 13)
|
|
26
57
|
warn_for_deprecated_arguments do |keywords|
|
|
27
58
|
keywords << :base if legacy_base != NOT_GIVEN
|
|
28
59
|
end
|
|
29
60
|
|
|
30
|
-
base
|
|
61
|
+
case base
|
|
62
|
+
when 8 then generate_base8_ean
|
|
63
|
+
when 13 then generate_base13_ean
|
|
64
|
+
else raise ArgumentError, 'base must be 3 or 13'
|
|
65
|
+
end
|
|
31
66
|
end
|
|
32
67
|
|
|
68
|
+
##
|
|
69
|
+
# Produces a random RUT (Rol Unico Nacional) code.
|
|
70
|
+
#
|
|
71
|
+
# @return [String]
|
|
72
|
+
#
|
|
73
|
+
# @example
|
|
74
|
+
# Faker::Code.rut #=> "91611842-2"
|
|
75
|
+
#
|
|
76
|
+
# @faker.version 1.9.4
|
|
33
77
|
def rut
|
|
34
78
|
value = Number.number(digits: 8).to_s
|
|
35
79
|
vd = rut_verificator_digit(value)
|
|
36
80
|
value << "-#{vd}"
|
|
37
81
|
end
|
|
38
82
|
|
|
83
|
+
##
|
|
84
|
+
# Produces a random NRIC (National Registry Identity Card) code.
|
|
39
85
|
# By default generates a Singaporean NRIC ID for someone
|
|
40
86
|
# who is born between the age of 18 and 65.
|
|
87
|
+
#
|
|
88
|
+
# @param min_age [Integer] the min age of the person in years
|
|
89
|
+
# @param max_age [Integer] the max age of the person in years
|
|
90
|
+
# @return [String]
|
|
91
|
+
#
|
|
92
|
+
# @example
|
|
93
|
+
# Faker::Code.nric(min_age: 25, max_age: 50) #=> "S9347283G"
|
|
94
|
+
# @example
|
|
95
|
+
# Faker::Code.nric(max_age: 55) #=> "S7876903C"
|
|
96
|
+
# @example
|
|
97
|
+
# Faker::Code.nric(min_age: 25) #=> "S6281697Z"
|
|
98
|
+
# @example
|
|
99
|
+
# Faker::Code.nric #=> "S6372958B"
|
|
100
|
+
#
|
|
101
|
+
# @faker.version 2.2.0
|
|
41
102
|
def nric(legacy_min_age = NOT_GIVEN, legacy_max_age = NOT_GIVEN, min_age: 18, max_age: 65)
|
|
42
103
|
warn_for_deprecated_arguments do |keywords|
|
|
43
104
|
keywords << :min_age if legacy_min_age != NOT_GIVEN
|
|
@@ -52,19 +113,41 @@ module Faker
|
|
|
52
113
|
"#{prefix}#{values}#{check_alpha}"
|
|
53
114
|
end
|
|
54
115
|
|
|
55
|
-
|
|
116
|
+
##
|
|
117
|
+
# Produces a random IMEI (International Mobile Equipment Number) code.
|
|
118
|
+
#
|
|
119
|
+
# @return [String]
|
|
120
|
+
#
|
|
121
|
+
# @example
|
|
122
|
+
# Faker::Code.imei #=> "492033129092256"
|
|
123
|
+
#
|
|
124
|
+
# @faker.version 1.9.4
|
|
56
125
|
def imei
|
|
57
126
|
generate_imei
|
|
58
127
|
end
|
|
59
128
|
|
|
60
|
-
|
|
61
|
-
# https://archive.org/details/asin_listing
|
|
129
|
+
##
|
|
130
|
+
# Retrieves a real Amazon ASIN code from https://archive.org/details/asin_listing
|
|
131
|
+
#
|
|
132
|
+
# @return [String]
|
|
133
|
+
#
|
|
134
|
+
# @example
|
|
135
|
+
# Faker::Code.asin #=> "B000MZW1GE"
|
|
136
|
+
#
|
|
137
|
+
# @faker.version 1.9.4
|
|
62
138
|
def asin
|
|
63
139
|
fetch('code.asin')
|
|
64
140
|
end
|
|
65
141
|
|
|
66
|
-
|
|
67
|
-
#
|
|
142
|
+
##
|
|
143
|
+
# Produces a random SIN (Social Insurance Number for Canada) code.
|
|
144
|
+
#
|
|
145
|
+
# @return [String]
|
|
146
|
+
#
|
|
147
|
+
# @example
|
|
148
|
+
# Faker::Code.sin #=> "996586962"
|
|
149
|
+
#
|
|
150
|
+
# @faker.version 1.9.4
|
|
68
151
|
def sin
|
|
69
152
|
# 1 - province or temporary resident
|
|
70
153
|
# 2-8 - random numbers
|
|
@@ -77,7 +160,7 @@ module Faker
|
|
|
77
160
|
partial = Array.new(7) { Faker::Config.random.rand(0..9) }.join
|
|
78
161
|
|
|
79
162
|
# Generate 9th digit
|
|
80
|
-
check_digit = generate_sin_check_digit(registry
|
|
163
|
+
check_digit = generate_sin_check_digit("#{registry}#{partial}0").to_s
|
|
81
164
|
|
|
82
165
|
registry + partial + check_digit
|
|
83
166
|
end
|
|
@@ -90,8 +173,6 @@ module Faker
|
|
|
90
173
|
def generate_imei
|
|
91
174
|
str = Array.new(15, 0)
|
|
92
175
|
sum = 0
|
|
93
|
-
t = 0
|
|
94
|
-
len_offset = 0
|
|
95
176
|
len = 15
|
|
96
177
|
|
|
97
178
|
# Fill in the first two values of the string based with the specified prefix.
|
|
@@ -137,7 +218,7 @@ module Faker
|
|
|
137
218
|
def generate_base13_isbn
|
|
138
219
|
values = regexify(/\d{12}/)
|
|
139
220
|
remainder = sum(values) { |value, index| index.even? ? value.to_i : value.to_i * 3 } % 10
|
|
140
|
-
values << "-#{(
|
|
221
|
+
values << "-#{(10 - remainder) % 10}"
|
|
141
222
|
end
|
|
142
223
|
|
|
143
224
|
def sum(values)
|