faker 2.13.0 → 2.14.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +49 -0
- data/README.md +4 -0
- data/lib/faker/default/barcode.rb +154 -0
- data/lib/faker/default/code.rb +96 -15
- data/lib/faker/default/driving_licence.rb +23 -0
- data/lib/faker/default/drone.rb +332 -0
- data/lib/faker/games/dnd.rb +89 -14
- data/lib/faker/games/street_fighter.rb +61 -0
- data/lib/faker/version.rb +1 -1
- data/lib/helpers/base58.rb +1 -1
- data/lib/helpers/unique_generator.rb +0 -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/animal.yml +1 -1
- data/lib/locales/en/barcode.yml +24 -0
- data/lib/locales/en/dnd.yml +430 -33
- data/lib/locales/en/driving_license.yml +178 -0
- data/lib/locales/en/drone.yml +95 -0
- data/lib/locales/en/name.yml +2 -2
- data/lib/locales/en/street_fighter.yml +1524 -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 +8 -2
- data/lib/locales/id.yml +2 -1
- data/lib/locales/it.yml +2 -1
- data/lib/locales/ko.yml +34 -24
- data/lib/locales/nb-NO.yml +4 -2
- data/lib/locales/pt.yml +3 -1
- data/lib/locales/ru.yml +3 -1
- data/lib/locales/sk.yml +4 -2
- metadata +13 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c20404a4d9474978940db437ddac9984deddd352fdf7cf9313d038a7e9c0ce54
|
4
|
+
data.tar.gz: d52491d45e9dbc7525cf078789e84c10219d2c8e428de4541a1e73dfa6246569
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee17e0c0333a8e5456d167ed3f7ccc26be29c5f95efdcf6aa866cc2b80789afb95a910922af3405f9d3484b0c266c5217fa40fb593c08eefcc8aab0159b83f91
|
7
|
+
data.tar.gz: 66fa28264c8fbe299c025e6bd566a55870fd9059bda1863dfbe3d03c7fe56a176f04432c784f3d1a079429bb375cc18c56da6d38341b2167edce1f3abbae9074
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,54 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## [v2.14.0](https://github.com/faker-ruby/faker/tree/v2.14.0) (2020-09-15)
|
4
|
+
|
5
|
+
## Bug/Fixes
|
6
|
+
|
7
|
+
- [PR #2119](https://github.com/faker-ruby/faker/pull/2119) Fixed failing spec for phone number
|
8
|
+
|
9
|
+
## Chores
|
10
|
+
|
11
|
+
- [PR #2088](https://github.com/faker-ruby/faker/pull/2088) Remove the space in the word "turtle" in the Creature::Animals faker
|
12
|
+
- [PR #2081](https://github.com/faker-ruby/faker/pull/2081) Remove redundant condition branch for Ruby 2.4
|
13
|
+
- [PR #2077](https://github.com/faker-ruby/faker/pull/2077) Rename tests according to the `test*.rb` pattern so that they run
|
14
|
+
|
15
|
+
## Documentation
|
16
|
+
|
17
|
+
- [PR #2095](https://github.com/faker-ruby/faker/pull/2095) Fix a typo for `Games::DnD.species`
|
18
|
+
- [PR #2094](https://github.com/faker-ruby/faker/pull/2094) Correct method name from race to species in DnD doc
|
19
|
+
- [PR #2079](https://github.com/faker-ruby/faker/pull/2079) Add `Music::PearlJam` to Readme
|
20
|
+
- [PR #2058](https://github.com/faker-ruby/faker/pull/2058) Add YARD doc for `Faker::Code`
|
21
|
+
|
22
|
+
## Feature Request
|
23
|
+
|
24
|
+
- [PR #2117](https://github.com/faker-ruby/faker/pull/2117) Add Truffleruby head to CI
|
25
|
+
- [PR #2104](https://github.com/faker-ruby/faker/pull/2104) 2097 Added barcodes
|
26
|
+
- [PR #2090](https://github.com/faker-ruby/faker/pull/2090) 1693 USA driving license
|
27
|
+
- [PR #2098](https://github.com/faker-ruby/faker/pull/2098) Update DnD generator
|
28
|
+
- [PR #2096](https://github.com/faker-ruby/faker/pull/2096) 2091 faker drones
|
29
|
+
- [PR #2092](https://github.com/faker-ruby/faker/pull/2092) Add a street fighter generator
|
30
|
+
- [PR #2082](https://github.com/faker-ruby/faker/pull/2082) Enable `Lint/UnifiedInteger` cop
|
31
|
+
|
32
|
+
## Update locales
|
33
|
+
|
34
|
+
- [PR #2100](https://github.com/faker-ruby/faker/pull/2100) Remove Gaylord
|
35
|
+
- [PR #2087](https://github.com/faker-ruby/faker/pull/2087) Fix/remove country code from phone numbers
|
36
|
+
- [PR #2086](https://github.com/faker-ruby/faker/pull/2086) removing country code from phone numbers to `fr-CH`
|
37
|
+
- [PR #2084](https://github.com/faker-ruby/faker/pull/2084) removed extra + sign from country codes
|
38
|
+
- [PR #2078](https://github.com/faker-ruby/faker/pull/2078) Removed 07624 from UK mobile numbers
|
39
|
+
- [PR #2073](https://github.com/faker-ruby/faker/pull/2073) Add missing azimuth field for fr locale
|
40
|
+
- [PR #2072](https://github.com/faker-ruby/faker/pull/2072) Remove time formats from file
|
41
|
+
|
42
|
+
Update local dependencies
|
43
|
+
|
44
|
+
- Update rubocop requirement from = 0.87.1 to = 0.88.0 (#2080)
|
45
|
+
- Update rubocop requirement from = 0.87.0 to = 0.87.1 (#2075)
|
46
|
+
- Update rubocop requirement from = 0.86.0 to = 0.87.0 (#2074)
|
47
|
+
- Bumps i18n from 1.8.4 to 1.8.5 (#2089)
|
48
|
+
- Bumps i18n from 1.8.3 to 1.8.4 (#2083)
|
49
|
+
|
50
|
+
------------------------------------------------------------------------------
|
51
|
+
|
3
52
|
## [v2.13.0](https://github.com/faker-ruby/faker/tree/v2.13.0) (2020-06-24)
|
4
53
|
|
5
54
|
This version:
|
data/README.md
CHANGED
@@ -130,6 +130,7 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
|
|
130
130
|
- [Faker::Artist](doc/default/artist.md)
|
131
131
|
- [Faker::Avatar](doc/default/avatar.md)
|
132
132
|
- [Faker::Bank](doc/default/bank.md)
|
133
|
+
- [Faker::Barcode](doc/default/barcode.md)
|
133
134
|
- [Faker::Beer](doc/default/beer.md)
|
134
135
|
- [Faker::Blood](doc/default/blood.md)
|
135
136
|
- [Faker::Boolean](doc/default/boolean.md)
|
@@ -157,6 +158,7 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
|
|
157
158
|
- [Faker::Dessert](doc/default/dessert.md)
|
158
159
|
- [Faker::Device](doc/default/device.md)
|
159
160
|
- [Faker::DrivingLicence](doc/default/driving_licence.md)
|
161
|
+
- [Faker::Drone](doc/drone/drone.md)
|
160
162
|
- [Faker::Educator](doc/default/educator.md)
|
161
163
|
- [Faker::ElectricalComponents](doc/default/electrical_components.md)
|
162
164
|
- [Faker::Esport](doc/default/esport.md)
|
@@ -245,6 +247,7 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
|
|
245
247
|
- [Faker::Games::Overwatch](doc/games/overwatch.md)
|
246
248
|
- [Faker::Games::Pokemon](doc/games/pokemon.md)
|
247
249
|
- [Faker::Games::SonicTheHedgehog](doc/games/sonic_the_hedgehog.md)
|
250
|
+
- [Faker::Games::StreetFighter](doc/games/street_fighter.md)
|
248
251
|
- [Faker::Games::SuperSmashBros](doc/games/super_smash_bros.md)
|
249
252
|
- [Faker::Games::WarhammerFantasy](doc/games/warhammer_fantasy.md)
|
250
253
|
- [Faker::Games::Witcher](doc/games/witcher.md)
|
@@ -274,6 +277,7 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'mast
|
|
274
277
|
- [Faker::Music](doc/music/music.md)
|
275
278
|
- [Faker::Music::GratefulDead](doc/music/grateful_dead.md)
|
276
279
|
- [Faker::Music::Opera](doc/music/opera.md)
|
280
|
+
- [Faker::Music::PearlJam](doc/music/pearl_jam.md)
|
277
281
|
- [Faker::Music::Phish](doc/music/phish.md)
|
278
282
|
- [Faker::Music::Prince](doc/music/prince.md)
|
279
283
|
- [Faker::Music::RockBand](doc/music/rock_band.md)
|
@@ -0,0 +1,154 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Faker
|
4
|
+
class Barcode < Base
|
5
|
+
class << self
|
6
|
+
## Returns a EAN 8 or 13 digit format barcode number with check digit
|
7
|
+
# @returns [String]
|
8
|
+
#
|
9
|
+
# @example
|
10
|
+
# Faker::Barcode.ean => "85657526"
|
11
|
+
# Faker::Barcode.ean(8) => "30152700"
|
12
|
+
# Faker::Barcode.ean(13) => "2115190480285"
|
13
|
+
#
|
14
|
+
# @faker.version next
|
15
|
+
def ean(length = 8)
|
16
|
+
generate_barcode("barcode.ean_#{Integer(length)}")
|
17
|
+
end
|
18
|
+
|
19
|
+
## Returns a EAN 8 or 13 digit format barcode number with composite string attached with check digit
|
20
|
+
# @returns [String]
|
21
|
+
#
|
22
|
+
# @example
|
23
|
+
# Faker::Barcode.ean_with_composite_sumbology => "41007624|JHOC6649"
|
24
|
+
# Faker::Barcode.ean_with_composite_sumbology(8) => "38357961|XUYJ3266"
|
25
|
+
# Faker::Barcode.ean_with_composite_sumbology(13) => "9530722443911|CKHWQHID"
|
26
|
+
#
|
27
|
+
# @faker.version next
|
28
|
+
def ean_with_composite_symbology(length = 8)
|
29
|
+
"#{ean(length)}|#{bothify(parse('barcode.composite_symbol'))}"
|
30
|
+
end
|
31
|
+
|
32
|
+
## Returns a UPC_A format barcode number with check digit
|
33
|
+
# @returns [String]
|
34
|
+
#
|
35
|
+
# @example
|
36
|
+
# Faker::Barcode.upc_a => "766807541831"
|
37
|
+
#
|
38
|
+
# @faker.version next
|
39
|
+
def upc_a
|
40
|
+
generate_barcode('barcode.upc_a')
|
41
|
+
end
|
42
|
+
|
43
|
+
## Returns a UPC_E format barcode number with check digit
|
44
|
+
# @returns [String]
|
45
|
+
#
|
46
|
+
# @example
|
47
|
+
# Faker::Barcode.upc_e => "03746820"
|
48
|
+
#
|
49
|
+
# @faker.version next
|
50
|
+
def upc_e
|
51
|
+
generate_barcode('barcode.upc_e')
|
52
|
+
end
|
53
|
+
|
54
|
+
## Returns a UPC_A format barcode number with composite string attached with check digit
|
55
|
+
# @returns [String]
|
56
|
+
#
|
57
|
+
# @example
|
58
|
+
# Faker::Barcode.upc_a_with_composite_symbology => "790670155765|JOVG6208"
|
59
|
+
#
|
60
|
+
# @faker.version next
|
61
|
+
def upc_a_with_composite_symbology
|
62
|
+
"#{upc_a}|#{bothify(parse('barcode.composite_symbol'))}"
|
63
|
+
end
|
64
|
+
|
65
|
+
## Returns a UPC_E format barcode number with composite string attached with check digit
|
66
|
+
# @returns [String]
|
67
|
+
#
|
68
|
+
# @example
|
69
|
+
# Faker::Barcode.upc_e_with_composite_symbology => "05149247|BKZX9722"
|
70
|
+
#
|
71
|
+
# @faker.version next
|
72
|
+
def upc_e_with_composite_symbology
|
73
|
+
"#{upc_e}|#{bothify(parse('barcode.composite_symbol'))}"
|
74
|
+
end
|
75
|
+
|
76
|
+
## Returns a ISBN format barcode number with check digit
|
77
|
+
# @returns [String]
|
78
|
+
#
|
79
|
+
# @example
|
80
|
+
# Faker::Barcode.isbn => "9798363807732"
|
81
|
+
#
|
82
|
+
# @faker.version next
|
83
|
+
def isbn
|
84
|
+
generate_barcode('barcode.isbn')
|
85
|
+
end
|
86
|
+
|
87
|
+
## Returns a ISMN format barcode number with check digit
|
88
|
+
# @returns [String]
|
89
|
+
#
|
90
|
+
# @example
|
91
|
+
# Faker::Barcode.ismn => "9790527672897"
|
92
|
+
#
|
93
|
+
# @faker.version next
|
94
|
+
def ismn
|
95
|
+
generate_barcode('barcode.ismn')
|
96
|
+
end
|
97
|
+
|
98
|
+
## Returns a ISSN format barcode number with check digit
|
99
|
+
# @returns [String]
|
100
|
+
#
|
101
|
+
# @example
|
102
|
+
# Faker::Barcode.issn => "9775541703338"
|
103
|
+
#
|
104
|
+
# @faker.version next
|
105
|
+
def issn
|
106
|
+
generate_barcode('barcode.issn')
|
107
|
+
end
|
108
|
+
|
109
|
+
private
|
110
|
+
|
111
|
+
def generate_barcode(key)
|
112
|
+
barcode = parse(key)
|
113
|
+
check_digit = generate_check_digit(*sum_even_odd(barcode))
|
114
|
+
"#{barcode}#{check_digit}"
|
115
|
+
end
|
116
|
+
|
117
|
+
## Returns the sum of even and odd numbers from value passed
|
118
|
+
#
|
119
|
+
# @returns [Array]
|
120
|
+
#
|
121
|
+
# @example
|
122
|
+
# Faker::Barcode.send(:sum_even_odd, 12345) => [9, 5]
|
123
|
+
# Faker::Barcode.send(:sum_even_odd, 87465) => [17, 13]
|
124
|
+
#
|
125
|
+
# @faker.version next
|
126
|
+
def sum_even_odd(fake_num)
|
127
|
+
number = fake_num.to_i
|
128
|
+
sum_even, sum_odd = 0, 0, index = 1
|
129
|
+
|
130
|
+
while number != 0
|
131
|
+
index.even? ? sum_even += number % 10 : sum_odd += number % 10
|
132
|
+
|
133
|
+
number /= 10
|
134
|
+
index += 1
|
135
|
+
end
|
136
|
+
|
137
|
+
[sum_odd, sum_even]
|
138
|
+
end
|
139
|
+
|
140
|
+
## Generates the check digits from sum passed
|
141
|
+
#
|
142
|
+
# @returns [Integer]
|
143
|
+
#
|
144
|
+
# @example
|
145
|
+
# Faker::Barcode.send(:generate_check_digit, 12, 4) => 0
|
146
|
+
# Faker::Barcode.send(:generate_check_digit, 23, 5) => 6
|
147
|
+
#
|
148
|
+
# @faker.version next
|
149
|
+
def generate_check_digit(odd_sum, even_sum)
|
150
|
+
(10 - (odd_sum * 3 + even_sum) % 10) % 10
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
data/lib/faker/default/code.rb
CHANGED
@@ -4,32 +4,76 @@ 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)
|
@@ -38,6 +82,23 @@ module Faker
|
|
38
82
|
|
39
83
|
# By default generates a Singaporean NRIC ID for someone
|
40
84
|
# who is born between the age of 18 and 65.
|
85
|
+
#
|
86
|
+
# Produces a random NRIC (National Registry Identity Card) code.
|
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
|
@@ -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.
|
@@ -78,6 +78,23 @@ module Faker
|
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
81
|
+
##
|
82
|
+
# Produces a random USA driving licence number by state code passed.
|
83
|
+
#
|
84
|
+
# @return [String]
|
85
|
+
#
|
86
|
+
# @example
|
87
|
+
# Faker::DrivingLicence.usa_driving_licence #=> "V5598249"
|
88
|
+
# Faker::DrivingLicence.usa_driving_licence('new mexico') #=> "270692028"
|
89
|
+
# Faker::DrivingLicence.usa_driving_licence('New Mexico') #=> "68178637"
|
90
|
+
#
|
91
|
+
# @faker.version next
|
92
|
+
def usa_driving_licence(state = 'California')
|
93
|
+
bothify(fetch("driving_licence.usa.#{state.to_s.strip.downcase.gsub(' ', '_')}"))
|
94
|
+
rescue I18n::MissingTranslationData => _e
|
95
|
+
raise InvalidStatePassed, "Invalid state code passed for USA, '#{state}'"
|
96
|
+
end
|
97
|
+
|
81
98
|
private
|
82
99
|
|
83
100
|
def random_gender
|
@@ -104,4 +121,10 @@ module Faker
|
|
104
121
|
end
|
105
122
|
end
|
106
123
|
end
|
124
|
+
|
125
|
+
class InvalidStatePassed < StandardError
|
126
|
+
def initialize(msg = 'Invalid state code passed')
|
127
|
+
super
|
128
|
+
end
|
129
|
+
end
|
107
130
|
end
|