curp_generator 1.1.0 → 1.1.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/lib/base.rb +3 -2
- data/lib/birth_date.rb +11 -4
- data/lib/digit_verifier.rb +10 -4
- data/lib/gender.rb +10 -4
- data/lib/name.rb +10 -5
- data/lib/state.rb +3 -3
- data/lib/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 62ae367b8e132528cf37923aef01e10d851f75c90abd13822d578f7d9f9a32df
|
4
|
+
data.tar.gz: ea0d939d2e17d09b120c521aaa9146c83ee3cf8f526a10c9ceebb22ff052ecb5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ffd3e8de1ab7ef8e8f57d0f1a00892e26a4c34ca7987114f67ec8ea65e0d9b8ebeccbdd003e9405a1fd8057eebb8f6f7068a02ae867025b94291baad9b3a612
|
7
|
+
data.tar.gz: 90c3566aeb640e972cb49d163d7c4e9a5670a54539ff0ce5b1ce602539c7ea9a8040fd350f65c78328f2e3194d25edff0f95e355063f8c6cb5ad3ce71e743872
|
data/lib/base.rb
CHANGED
@@ -22,7 +22,7 @@ class CurpGenerator::Base
|
|
22
22
|
def parse_attribute(attribute)
|
23
23
|
return if blank_string?(attribute)
|
24
24
|
|
25
|
-
str = remove_special_chars(
|
25
|
+
str = remove_special_chars(attribute)
|
26
26
|
remove_composed_names(str)
|
27
27
|
end
|
28
28
|
|
@@ -31,7 +31,8 @@ class CurpGenerator::Base
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def remove_special_chars(string)
|
34
|
-
string
|
34
|
+
normalized = normalize(string)
|
35
|
+
normalized&.gsub(/[.'\d-]/, "")
|
35
36
|
end
|
36
37
|
|
37
38
|
def normalize(string)
|
data/lib/birth_date.rb
CHANGED
@@ -14,20 +14,27 @@ class CurpGenerator::BirthDate < CurpGenerator::Base
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def generate
|
17
|
-
|
17
|
+
validate_params
|
18
|
+
parsed_date
|
18
19
|
end
|
19
20
|
|
20
21
|
def homoclave_digit
|
22
|
+
validate_params
|
21
23
|
@birth_date.year < 2000 ? '0' : 'A'
|
22
24
|
end
|
23
25
|
|
24
26
|
private
|
25
27
|
|
26
|
-
def
|
27
|
-
blank_string?(@birth_date)
|
28
|
+
def validate_params
|
29
|
+
missing_birth_date_error! if blank_string?(@birth_date)
|
30
|
+
invalid_format_error! unless @birth_date.respond_to?(:strftime)
|
28
31
|
end
|
29
32
|
|
30
|
-
def
|
33
|
+
def missing_birth_date_error!
|
34
|
+
raise InvalidCurpArgumentError, 'Missing birth date'
|
35
|
+
end
|
36
|
+
|
37
|
+
def invalid_format_error!
|
31
38
|
raise InvalidCurpArgumentError, 'Invalid date format'
|
32
39
|
end
|
33
40
|
|
data/lib/digit_verifier.rb
CHANGED
@@ -12,19 +12,25 @@ class CurpGenerator::DigitVerifier < CurpGenerator::Base
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def generate
|
15
|
-
|
15
|
+
validate_params
|
16
|
+
verifying_digit
|
16
17
|
end
|
17
18
|
|
18
19
|
private
|
19
20
|
|
20
|
-
def
|
21
|
-
blank_string?(@partial_curp)
|
21
|
+
def validate_params
|
22
|
+
missing_partial_curp_error! if blank_string?(@partial_curp)
|
23
|
+
invalid_size_error! if @partial_curp.size != 17
|
22
24
|
end
|
23
25
|
|
24
|
-
def
|
26
|
+
def missing_partial_curp_error!
|
25
27
|
raise InvalidCurpArgumentError, 'Missing partial curp'
|
26
28
|
end
|
27
29
|
|
30
|
+
def invalid_size_error!
|
31
|
+
raise InvalidCurpArgumentError, 'Invalid partial curp size'
|
32
|
+
end
|
33
|
+
|
28
34
|
def verifying_digit
|
29
35
|
length_sum = 0.0
|
30
36
|
|
data/lib/gender.rb
CHANGED
@@ -24,20 +24,26 @@ class CurpGenerator::Gender < CurpGenerator::Base
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def generate
|
27
|
-
|
27
|
+
validate_params
|
28
|
+
parsed_gender
|
28
29
|
end
|
29
30
|
|
30
31
|
private
|
31
32
|
|
32
|
-
def
|
33
|
-
blank_string?(@gender)
|
33
|
+
def validate_params
|
34
|
+
missing_gender_error! if blank_string?(@gender)
|
35
|
+
invalid_gender_error! if invalid_gender?
|
34
36
|
end
|
35
37
|
|
36
38
|
def invalid_gender?
|
37
39
|
!VALID_MALE_GENDERS.include?(@gender) && !VALID_FEMALE_GENDERS.include?(@gender)
|
38
40
|
end
|
39
41
|
|
40
|
-
def
|
42
|
+
def missing_gender_error!
|
43
|
+
raise InvalidCurpArgumentError, 'Missing gender'
|
44
|
+
end
|
45
|
+
|
46
|
+
def invalid_gender_error!
|
41
47
|
raise InvalidCurpArgumentError, "Available gender options are #{VALID_MALE_GENDERS + VALID_FEMALE_GENDERS}"
|
42
48
|
end
|
43
49
|
|
data/lib/name.rb
CHANGED
@@ -20,7 +20,7 @@ class CurpGenerator::Name < CurpGenerator::Base
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def generate
|
23
|
-
|
23
|
+
validate_params
|
24
24
|
end
|
25
25
|
|
26
26
|
def prefix_name
|
@@ -35,12 +35,17 @@ class CurpGenerator::Name < CurpGenerator::Base
|
|
35
35
|
|
36
36
|
private
|
37
37
|
|
38
|
-
def
|
39
|
-
|
38
|
+
def validate_params
|
39
|
+
missing_first_name_error! if blank_string?(@first_name)
|
40
|
+
missing_first_last_name_error! if blank_string?(@first_last_name)
|
40
41
|
end
|
41
42
|
|
42
|
-
def
|
43
|
-
raise InvalidCurpArgumentError, '
|
43
|
+
def missing_first_name_error!
|
44
|
+
raise InvalidCurpArgumentError, 'Missing first name'
|
45
|
+
end
|
46
|
+
|
47
|
+
def missing_first_last_name_error!
|
48
|
+
raise InvalidCurpArgumentError, 'Missing first last name'
|
44
49
|
end
|
45
50
|
|
46
51
|
def prefix_consonants
|
data/lib/state.rb
CHANGED
@@ -4,7 +4,7 @@ class CurpGenerator::State < CurpGenerator::Base
|
|
4
4
|
include CurpGenerator::Catalogs
|
5
5
|
|
6
6
|
def initialize(birth_state)
|
7
|
-
@birth_state =
|
7
|
+
@birth_state = remove_special_chars(birth_state&.upcase)
|
8
8
|
end
|
9
9
|
|
10
10
|
def self.generate(birth_state)
|
@@ -12,7 +12,7 @@ class CurpGenerator::State < CurpGenerator::Base
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def generate
|
15
|
-
invalid_params? ?
|
15
|
+
invalid_params? ? missing_birth_state_error! : parsed_state
|
16
16
|
end
|
17
17
|
|
18
18
|
private
|
@@ -21,7 +21,7 @@ class CurpGenerator::State < CurpGenerator::Base
|
|
21
21
|
blank_string?(@birth_state)
|
22
22
|
end
|
23
23
|
|
24
|
-
def
|
24
|
+
def missing_birth_state_error!
|
25
25
|
raise InvalidCurpArgumentError, 'Missing birth state argument'
|
26
26
|
end
|
27
27
|
|
data/lib/version.rb
CHANGED