validates_identity-br_cnpj 0.2.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ad37ba72057127952f6e2070ea12b4391deedc6a71345df18a7492543f2715ba
4
- data.tar.gz: 0234cf1783d3be5df50a926eccad3ebfca790d8762a1a5e4af4ce0a7df10647d
3
+ metadata.gz: e8ee7ec31e4cdea5fc2ca08ac030daaaf14b9a6cce9f896385424fe13feb3149
4
+ data.tar.gz: 6d8e71d9c7fa882a572dace34f7f16cc03cc2606f417b84319073b3ad7d9d281
5
5
  SHA512:
6
- metadata.gz: 51dd00bbccd63f687fb3575a2ef4c1b5ae7bc856494baacd1e7d2e39d894095dd6444e15cfc43f0c2c8af9257f2aa109370b9dac83a6ab9411df80e5efdead3f
7
- data.tar.gz: 728ce8ea4668bacc18335007976f5c80ab23a89c76ad8703bd1b3c2184a28738e07be71104cbad7eb1aafcf7f8135a8e6a9fee44f58daca388f55e1ab6ebb7d8
6
+ metadata.gz: 275c4ac8802dbc19881c7ba14228d4b6f5bdb3f77fbe8329b4798721c66fecfbba499aeea9ac69269d71c808bb4f757fc18c3063bdbb05bc6543000d24145927
7
+ data.tar.gz: f6cf67d9fc006f924e35d6f2c9c2cfef807209de235c6a00de25601faff2d7916e6532cb9d70d748c567f6da8b7c4787b887aed2c4e4dde95df77326b4aa49cf
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## [1.0.0] - 2024-02-29
2
+
3
+ ### Changed
4
+
5
+ - First deployable version. Ready to Production
6
+
7
+ ### Changed
8
+
9
+ - Improved Code
10
+
1
11
  ## [0.2.0] - 2024-02-27
2
12
 
3
13
  ### Fixed
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- validates_identity-br_cnpj (0.2.0)
4
+ validates_identity-br_cnpj (1.0.0)
5
5
  activemodel
6
6
  validates_identity (>= 0.5.0)
7
7
 
@@ -40,6 +40,12 @@ class ValidatesIdentity
40
40
  @number ||= result[1]
41
41
  end
42
42
 
43
+ def striped_number
44
+ return if number.nil?
45
+
46
+ @striped_number ||= number.gsub(%r{[\./-]}, '')
47
+ end
48
+
43
49
  def striped_value
44
50
  return if number.nil?
45
51
 
@@ -53,23 +59,29 @@ class ValidatesIdentity
53
59
  end
54
60
 
55
61
  def first_digit_verifier
56
- sum = multiply_and_sum([5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2], number)
57
- digit_verifier(sum % 11).to_s
62
+ result = multiply_and_sum([5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2], striped_number)
63
+ digit_verifier(result)
58
64
  end
59
65
 
60
66
  def second_digit_verifier
61
- sum = multiply_and_sum([6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2], "#{number}#{first_digit_verifier}")
62
- digit_verifier(sum % 11).to_s
67
+ result = multiply_and_sum([6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2], "#{striped_number}#{first_digit_verifier}")
68
+ digit_verifier(result)
63
69
  end
64
70
 
65
71
  def multiply_and_sum(array, number)
66
- multiplied = []
67
- number.scan(/\d{1}/).each_with_index { |e, i| multiplied[i] = e.to_i * array[i] }
68
- multiplied.inject { |s, e| s + e }
72
+ multiplications = []
73
+ number.each_char.with_index { |char, index| multiplications[index] = char.to_i * array[index] }
74
+ multiplications.inject(:+)
69
75
  end
70
76
 
71
- def digit_verifier(rest)
72
- rest < 2 ? 0 : 11 - rest
77
+ def digit_verifier(value)
78
+ result = value % 11
79
+
80
+ if result >= 2
81
+ (11 - result).to_s
82
+ else
83
+ 0.to_s
84
+ end
73
85
  end
74
86
  end
75
87
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  class ValidatesIdentity
4
4
  module BrCnpj
5
- VERSION = '0.2.0'
5
+ VERSION = '1.0.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: validates_identity-br_cnpj
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paulo Ribeiro
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-02-27 00:00:00.000000000 Z
11
+ date: 2024-02-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel