Skip to content

Commit f586da7

Browse files
Jamal-A-MohamedThe-ends-of-inventionStefanni Brasilthdaraujo
authored
Refactor Faker::IDNumber to Faker::IdNumber to be more consistent with other generator's naming convention. (#2858)
* Deprecate IDNumber to IdNumber per issue#2787 * wip * Add a Faker::Deprecator module Co-authored-by: Thiago Araujo <[email protected]> * Add more specs and improve warning message --------- Co-authored-by: jamal.mohamed <[email protected]> Co-authored-by: Stefanni Brasil <[email protected]> Co-authored-by: Thiago Araujo <[email protected]>
1 parent 3f7371e commit f586da7

13 files changed

+464
-79
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ gem 'faker', :git => 'https://github.com/faker-ruby/faker.git', :branch => 'main
248248
- [Faker::Hipster](doc/default/hipster.md)
249249
- [Faker::Hobby](doc/default/hobby.md)
250250
- [Faker::House](doc/default/house.md)
251-
- [Faker::IDNumber](doc/default/id_number.md)
251+
- [Faker::IdNumber](doc/default/id_number.md)
252252
- [Faker::IndustrySegments](doc/default/industry_segments.md)
253253
- [Faker::Internet](doc/default/internet.md)
254254
- [Faker::Invoice](doc/default/invoice.md)

doc/default/id_number.md

+20-20
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,52 @@
1-
# Faker::IDNumber
1+
# Faker::IdNumber
22

33
```ruby
44
# Generate a valid US Social Security number
5-
Faker::IDNumber.valid #=> "552-56-3593"
5+
Faker::IdNumber.valid #=> "552-56-3593"
66

77
# Generate an invalid US Social Security number
8-
Faker::IDNumber.invalid #=> "311-72-0000"
8+
Faker::IdNumber.invalid #=> "311-72-0000"
99

1010
# Generate a Spanish citizen identifier (DNI)
11-
Faker::IDNumber.spanish_citizen_number #=> "53290236-H"
11+
Faker::IdNumber.spanish_citizen_number #=> "53290236-H"
1212

1313
# Generate a Spanish foreign born citizen identifier (NIE)
14-
Faker::IDNumber.spanish_foreign_citizen_number #=> "Z-1600870-Y"
14+
Faker::IdNumber.spanish_foreign_citizen_number #=> "Z-1600870-Y"
1515

1616
# Generate a valid South African ID Number
17-
Faker::IDNumber.south_african_id_number #=> "8105128870184"
17+
Faker::IdNumber.south_african_id_number #=> "8105128870184"
1818
# or
19-
Faker::IDNumber.valid_south_african_id_number #=> "8105128870184"
19+
Faker::IdNumber.valid_south_african_id_number #=> "8105128870184"
2020

2121
# Generate an invalid South African ID Number
22-
Faker::IDNumber.invalid_south_african_id_number #=> "1642972065088"
22+
Faker::IdNumber.invalid_south_african_id_number #=> "1642972065088"
2323

2424
# Generate a Brazilian citizen number (CPF)
2525
# Keyword arguments: formatted
26-
Faker::IDNumber.brazilian_citizen_number #=> "53540542221"
27-
Faker::IDNumber.brazilian_citizen_number(formatted: true) #=> "535.405.422-21"
26+
Faker::IdNumber.brazilian_citizen_number #=> "53540542221"
27+
Faker::IdNumber.brazilian_citizen_number(formatted: true) #=> "535.405.422-21"
2828

2929
# Generate a Brazilian ID Number (RG)
3030
# Keyword arguments: formatted
31-
Faker::IDNumber.brazilian_id #=> "493054029"
32-
Faker::IDNumber.brazilian_id(formatted: true) #=> "49.305.402-9"
31+
Faker::IdNumber.brazilian_id #=> "493054029"
32+
Faker::IdNumber.brazilian_id(formatted: true) #=> "49.305.402-9"
3333

3434
# Generate a Chilean ID (Rut with 8 digits)
3535
# For more advanced cases, please refer to Faker::ChileRut
36-
Faker::IDNumber.chilean_id #=> "15620613-K"
36+
Faker::IdNumber.chilean_id #=> "15620613-K"
3737

3838
# Generate a Croatian ID number (OIB)
3939
# Keyword arguments: international
40-
Faker::IDNumber.croatian_id #=> "88467617508"
41-
Faker::IDNumber.croatian_id(international: true) #=> "HR88467617508"
40+
Faker::IdNumber.croatian_id #=> "88467617508"
41+
Faker::IdNumber.croatian_id(international: true) #=> "HR88467617508"
4242

4343
# Generate a Danish ID number (CPR)
4444
# Keyword arguments: formatted, gender, birthday
45-
Faker::IDNumber.danish_id_number #=> "050390-9980"
46-
Faker::IDNumber.danish_id_number(formatted: true) #=> "050390-9980"
47-
Faker::IDNumber.danish_id_number(birthday: Date.new(1990, 3, 5)) #=> "050390-9980"
48-
Faker::IDNumber.danish_id_number(gender: :female) #=> "050390-9980"
45+
Faker::IdNumber.danish_id_number #=> "050390-9980"
46+
Faker::IdNumber.danish_id_number(formatted: true) #=> "050390-9980"
47+
Faker::IdNumber.danish_id_number(birthday: Date.new(1990, 3, 5)) #=> "050390-9980"
48+
Faker::IdNumber.danish_id_number(gender: :female) #=> "050390-9980"
4949

5050
# Generate a valid French Social Security number (INSEE number)
51-
Faker::IDNumber.french_insee_number #=> "22510589696868"
51+
Faker::IdNumber.french_insee_number #=> "22510589696868"
5252
```

lib/faker/default/id_number.rb

+23-20
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# frozen_string_literal: true
22

33
module Faker
4-
class IDNumber < Base
4+
class IdNumber < Base
55
CHECKS = 'TRWAGMYFPDXBNJZSQVHLCKE'
66
INVALID_SSN = [
77
/0{3}-\d{2}-\d{4}/,
@@ -25,7 +25,7 @@ class << self
2525
# @return [String]
2626
#
2727
# @example
28-
# Faker::IDNumber.valid #=> "552-56-3593"
28+
# Faker::IdNumber.valid #=> "552-56-3593"
2929
#
3030
# @faker.version 1.6.0
3131
def valid
@@ -38,7 +38,7 @@ def valid
3838
# @return [String]
3939
#
4040
# @example
41-
# Faker::IDNumber.invalid #=> "311-72-0000"
41+
# Faker::IdNumber.invalid #=> "311-72-0000"
4242
#
4343
# @faker.version 1.6.0
4444
def invalid
@@ -71,7 +71,7 @@ def ssn_valid
7171
# @return [String]
7272
#
7373
# @example
74-
# Faker::IDNumber.spanish_citizen_number #=> "53290236-H"
74+
# Faker::IdNumber.spanish_citizen_number #=> "53290236-H"
7575
#
7676
# @faker.version 1.9.0
7777
def spanish_citizen_number
@@ -87,7 +87,7 @@ def spanish_citizen_number
8787
# @return [String]
8888
#
8989
# @example
90-
# Faker::IDNumber.spanish_foreign_citizen_number #=> "Z-1600870-Y"
90+
# Faker::IdNumber.spanish_foreign_citizen_number #=> "Z-1600870-Y"
9191
#
9292
# @faker.version 1.9.0
9393
def spanish_foreign_citizen_number
@@ -106,8 +106,8 @@ def spanish_foreign_citizen_number
106106
# @return [String]
107107
#
108108
# @example
109-
# Faker::IDNumber.south_african_id_number #=> "8105128870184"
110-
# Faker::IDNumber.valid_south_african_id_number #=> "8105128870184"
109+
# Faker::IdNumber.south_african_id_number #=> "8105128870184"
110+
# Faker::IdNumber.valid_south_african_id_number #=> "8105128870184"
111111
#
112112
# @faker.version 1.9.2
113113
def valid_south_african_id_number
@@ -129,7 +129,7 @@ def valid_south_african_id_number
129129
# @return [String]
130130
#
131131
# @example
132-
# Faker::IDNumber.invalid_south_african_id_number #=> "1642972065088"
132+
# Faker::IdNumber.invalid_south_african_id_number #=> "1642972065088"
133133
#
134134
# @faker.version 1.9.2
135135
def invalid_south_african_id_number
@@ -156,8 +156,8 @@ def invalid_south_african_id_number
156156
# @return [String]
157157
#
158158
# @example
159-
# Faker::IDNumber.brazilian_citizen_number #=> "53540542221"
160-
# Faker::IDNumber.brazilian_citizen_number(formatted: true) #=> "535.405.422-21"
159+
# Faker::IdNumber.brazilian_citizen_number #=> "53540542221"
160+
# Faker::IdNumber.brazilian_citizen_number(formatted: true) #=> "535.405.422-21"
161161
#
162162
# @faker.version 1.9.2
163163
def brazilian_citizen_number(formatted: false)
@@ -177,8 +177,8 @@ def brazilian_citizen_number(formatted: false)
177177
# @return [String]
178178
#
179179
# @example
180-
# Faker::IDNumber.brazilian_id #=> "493054029"
181-
# Faker::IDNumber.brazilian_id(formatted: true) #=> "49.305.402-9"
180+
# Faker::IdNumber.brazilian_id #=> "493054029"
181+
# Faker::IdNumber.brazilian_id(formatted: true) #=> "49.305.402-9"
182182
#
183183
# @faker.version 2.1.2
184184
def brazilian_id(formatted: false)
@@ -196,7 +196,7 @@ def brazilian_id(formatted: false)
196196
# @return [String]
197197
#
198198
# @example
199-
# Faker::IDNumber.chilean_id #=> "15620613-K"
199+
# Faker::IdNumber.chilean_id #=> "15620613-K"
200200
#
201201
# @faker.version 2.1.2
202202
def chilean_id
@@ -213,8 +213,8 @@ def chilean_id
213213
# @return [String]
214214
#
215215
# @example
216-
# Faker::IDNumber.croatian_id #=> "88467617508"
217-
# Faker::IDNumber.croatian_id(international: true) #=> "HR88467617508"
216+
# Faker::IdNumber.croatian_id #=> "88467617508"
217+
# Faker::IdNumber.croatian_id(international: true) #=> "HR88467617508"
218218
#
219219
# @faker.version next
220220
def croatian_id(international: false)
@@ -238,10 +238,10 @@ def croatian_id(international: false)
238238
# @return [String]
239239
#
240240
# @example
241-
# Faker::IDNumber.danish_id_number #=> "0503909980"
242-
# Faker::IDNumber.danish_id_number(formatted: true) #=> "050390-9980"
243-
# Faker::IDNumber.danish_id_number(birthday: Date.new(1990, 3, 5)) #=> "0503909980"
244-
# Faker::IDNumber.danish_id_number(gender: :female) #=> "0503909980"
241+
# Faker::IdNumber.danish_id_number #=> "0503909980"
242+
# Faker::IdNumber.danish_id_number(formatted: true) #=> "050390-9980"
243+
# Faker::IdNumber.danish_id_number(birthday: Date.new(1990, 3, 5)) #=> "0503909980"
244+
# Faker::IdNumber.danish_id_number(gender: :female) #=> "0503909980"
245245
#
246246
# @faker.version next
247247
def danish_id_number(formatted: false, birthday: Faker::Date.birthday, gender: nil)
@@ -275,7 +275,7 @@ def danish_id_number(formatted: false, birthday: Faker::Date.birthday, gender: n
275275
# @return [String]
276276
#
277277
# @example
278-
# Faker::IDNumber.french_insee_number #=> "53290236-H"
278+
# Faker::IdNumber.french_insee_number #=> "53290236-H"
279279
#
280280
# @faker.version next
281281
def french_insee_number
@@ -421,4 +421,7 @@ def _translate(key)
421421
end
422422
end
423423
end
424+
425+
include Faker::Deprecator
426+
deprecate_generator('IDNumber', IdNumber)
424427
end

lib/faker/default/south_africa.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class << self
1313
#
1414
# @faker.version 1.9.2
1515
def id_number
16-
Faker::IDNumber.south_african_id_number
16+
Faker::IdNumber.south_african_id_number
1717
end
1818

1919
##
@@ -26,7 +26,7 @@ def id_number
2626
#
2727
# @faker.version 1.9.2
2828
def valid_id_number
29-
Faker::IDNumber.valid_south_african_id_number
29+
Faker::IdNumber.valid_south_african_id_number
3030
end
3131

3232
##
@@ -39,7 +39,7 @@ def valid_id_number
3939
#
4040
# @faker.version 1.9.2
4141
def invalid_id_number
42-
Faker::IDNumber.invalid_south_african_id_number
42+
Faker::IdNumber.invalid_south_african_id_number
4343
end
4444

4545
##

lib/helpers/deprecator.rb

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# frozen_string_literal: true
2+
3+
# Based on Rails ActiveSupport Deprecator
4+
# https://github.com/rails/rails/blob/6f0d1ad14b92b9f5906e44740fce8b4f1c7075dc/activesupport/lib/active_support/deprecation/constant_accessor.rb
5+
6+
# rubocop:disable Style/ClassVars
7+
module Faker
8+
module Deprecator
9+
def self.included(base)
10+
extension = Module.new do
11+
def const_missing(missing_const_name)
12+
if class_variable_defined?(:@@_deprecated_constants) && (replacement = class_variable_get(:@@_deprecated_constants)[missing_const_name.to_s])
13+
$stdout.puts("DEPRECATION WARNING: #{name}::#{replacement[:old_generator]} is deprecated. Use #{replacement[:new_constant]} instead.")
14+
return replacement[:new_constant]
15+
end
16+
17+
super
18+
end
19+
20+
def deprecate_generator(old_generator_name, new_generator_constant)
21+
class_variable_set(:@@_deprecated_constants, {}) unless class_variable_defined?(:@@_deprecated_constants)
22+
class_variable_get(:@@_deprecated_constants)[old_generator_name] = { new_constant: new_generator_constant, old_generator: old_generator_name }
23+
end
24+
end
25+
26+
base.singleton_class.prepend extension
27+
end
28+
end
29+
end
30+
# rubocop:enable Style/ClassVars

lib/locales/en-US.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6960,7 +6960,7 @@ en-US:
69606960
- "#{PhoneNumber.area_code}-#{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number}"
69616961
- "#{PhoneNumber.area_code}.#{PhoneNumber.exchange_code}.#{PhoneNumber.subscriber_number}"
69626962
id_number:
6963-
valid: "#{IDNumber.ssn_valid}"
6963+
valid: "#{IdNumber.ssn_valid}"
69646964
invalid:
69656965
- 000-##-####
69666966
- "###-00-####"

lib/locales/en/id_number.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
en:
22
faker:
33
id_number:
4-
valid: "#{IDNumber.ssn_valid}"
4+
valid: "#{IdNumber.ssn_valid}"
55
invalid: ['000-##-####', '###-00-####', '###-##-0000', '666-##-####', '9##-##-####']

0 commit comments

Comments
 (0)