ci_uy 1.0.1 → 1.1.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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/ci_uy +3 -3
  3. data/lib/ci_uy.rb +24 -28
  4. metadata +66 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2dbba1cb5e88bdacc423cfcc8cd0b98d17630b1e54ee6882da82659900711add
4
- data.tar.gz: 2120004058a999cd0278b561eff4cbacaeb6e17ee7c65070b70eabc47d8839b2
3
+ metadata.gz: f8bd8a4ba177f5c66869e0202f615b8b122b2faa6801237518e3668b799096fc
4
+ data.tar.gz: f54475bce2be7bfe53a1c16f4b22a5bcc68c9f658ef6bbeef202b6eef11c98a3
5
5
  SHA512:
6
- metadata.gz: 8707b4f711062d3693bb54e90ad44ad3a62f70f62bef5010142f7af1c7a27b770502aab6caab58440ebf32d31727bf2dcb75e5bc318922bd7f090829050a1794
7
- data.tar.gz: 3e4ecc39307fff5fcc31758909d52d91057a8eb3d506d7995c4b77fcb7ed3e28190c15387d8fe6bba69a131562c213c093745f2c5d5d1145053f4888cb82b439
6
+ metadata.gz: f87ceef3f205c8bb9c6b9cac1584aa0c4d8a9c3534568e64effe902e2ec813c92515d8398b85dce4d2f87e579aec41c1d8a95db33071e4a1ea2c4d3655a92915
7
+ data.tar.gz: 3ec2395fd50c836a0f2397aea9af3f5768e01746c334575a32b1e9869cacf66e7ccf8f8d9babd449da0b060240fc0ec860e91847295b9479e19a749689976c87
data/bin/ci_uy CHANGED
@@ -6,11 +6,11 @@ require 'ci_uy'
6
6
  args = ARGV.dup
7
7
 
8
8
  case args[0]
9
- when ('validate' || 'validate_ci')
9
+ when 'validate' || 'validate_ci'
10
10
  puts CiUY.validate args[1].dup
11
- when ('random' || 'get_random_ci')
11
+ when 'random' || 'get_random_ci'
12
12
  puts CiUY.random
13
- when ('validation_digit' || 'get_validation_digit')
13
+ when 'validation_digit' || 'get_validation_digit'
14
14
  puts CiUY.validation_digit args[1].dup
15
15
  else
16
16
  puts <<-MANUAL
data/lib/ci_uy.rb CHANGED
@@ -7,43 +7,39 @@
7
7
  # The validation algorithm is:
8
8
  # Multiply each digit by 2, 9, 8, 7, 6, 3, 4 one to one
9
9
  # Then do 10 - (sum mod 10), that's the verification digit
10
- #
11
- # rubocop:disable Naming/UncommunicativeMethodParamName
12
10
  module CiUY
13
- def self.validation_digit(input)
14
- ci = transform(input)
15
- a = []
16
- (0..6).each do |i|
17
- a << ('2987634'[i].to_i * ci[i].to_i)
11
+ class << self
12
+ def validation_digit(input)
13
+ ci = transform(input)
14
+ a = []
15
+ 7.times do |i|
16
+ a << ('2987634'[i].to_i * ci[i].to_i)
17
+ end
18
+ (10 - (a.inject(:+) % 10)).to_s[-1]
18
19
  end
19
- (10 - (a.inject(:+) % 10)).to_s[-1]
20
- end
21
20
 
22
- def self.validate_ci(input)
23
- # Using to_a to keep 1.9.3 compatibility
24
- ci = transform(input).chars.to_a
25
- return false if ci.length < 6
21
+ def validate_ci(input)
22
+ # Using to_a to keep 1.9.3 compatibility
23
+ ci = transform(input).chars.to_a
24
+ return false if ci.length < 6
26
25
 
27
- digit = ci[-1]
28
- ci = ci[0..-2]
29
- get_validation_digit(ci.join) == digit
30
- end
26
+ digit = ci.pop
27
+ get_validation_digit(ci.join) == digit
28
+ end
31
29
 
32
- def self.random
33
- ci = rand(1_000_000..9_999_999).to_s
34
- ci + get_validation_digit(ci)
35
- end
30
+ def random
31
+ ci = rand(1_000_000..9_999_999).to_s
32
+ ci + get_validation_digit(ci)
33
+ end
36
34
 
37
- def self.transform(ci)
38
- ci = '0' + ci if ci.size == 6
39
- ci = ci.to_s if ci.is_a? Integer
40
- ci.chars.reject { |i| i.match(/\D/) }.join
41
- end
35
+ def transform(cedula)
36
+ cedula = "0#{cedula}" if cedula.size == 6
37
+ cedula = cedula.to_s if cedula.is_a? Integer
38
+ cedula.chars.reject { |i| i.match(/\D/) }.join
39
+ end
42
40
 
43
- class << self
44
41
  alias get_validation_digit validation_digit
45
42
  alias validate validate_ci
46
43
  alias get_random_ci random
47
44
  end
48
45
  end
49
- # rubocop:enable Naming/UncommunicativeMethodParamName
metadata CHANGED
@@ -1,15 +1,70 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ci_uy
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fernando Briano
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2019-07-27 00:00:00.000000000 Z
12
- dependencies: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: debug
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '0'
19
+ type: :development
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: minitest
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: rake
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: rubocop
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ type: :development
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
13
68
  description: A gem to validate Uruguayan Identity Documents (Cedula de Identidad Uruguaya)
14
69
  email: fernando@picandocodigo.net
15
70
  executables:
@@ -19,15 +74,13 @@ extra_rdoc_files: []
19
74
  files:
20
75
  - bin/ci_uy
21
76
  - lib/ci_uy.rb
22
- homepage: https://github.com/picandocodigo/ci_uy
77
+ homepage: https://codeberg.org/picandocodigo/ci_uy
23
78
  licenses:
24
- - LGPL-2.1
79
+ - LGPL-2.1-or-later
25
80
  metadata:
26
- homepage_uri: https://github.com/picandocodigo/ci_uy/
27
- changelog_uri: https://github.com/picandocodigo/ci_uy/blob/master/CHANGELOG
28
- source_code_uri: https://github.com/picandocodigo/ci_uy/
29
- bug_tracker_uri: https://github.com/picandocodigo/ci_uy/issues
30
- post_install_message:
81
+ homepage_uri: https://codeberg.org/picandocodigo/ci_uy
82
+ changelog_uri: https://codeberg.org/picandocodigo/ci_uy/src/branch/main/CHANGELOG
83
+ bug_tracker_uri: https://codeberg.org/picandocodigo/ci_uy/issues
31
84
  rdoc_options: []
32
85
  require_paths:
33
86
  - lib
@@ -35,15 +88,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
35
88
  requirements:
36
89
  - - ">="
37
90
  - !ruby/object:Gem::Version
38
- version: '0'
91
+ version: '2.5'
39
92
  required_rubygems_version: !ruby/object:Gem::Requirement
40
93
  requirements:
41
94
  - - ">="
42
95
  - !ruby/object:Gem::Version
43
96
  version: '0'
44
97
  requirements: []
45
- rubygems_version: 3.0.3
46
- signing_key:
98
+ rubygems_version: 4.0.3
47
99
  specification_version: 4
48
100
  summary: CiUY Validate Uruguayan cedula numbers
49
101
  test_files: []