simple_cpf_cnpj 1.0.0 → 1.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 33d8c4ceb8a8556943bd640f38d95384b7279519a363898bf04bee11fed393ca
4
- data.tar.gz: a6aa380b3c55726ebba1cd1d69fae2665b4ead0d9926a299fb1b95db85e6446b
3
+ metadata.gz: 99e239936871b845d6193c6a9fbacccab6e860bcbeaf44e5a74a56f439e3a70d
4
+ data.tar.gz: 8cb91799ccd828b1f89597fb4e843556b3773803326bf892bece7d6183b91fbf
5
5
  SHA512:
6
- metadata.gz: 973b38cf363d44154c46586b8ccc68e7d20626b889e0b2ccb671a7308dee37f202ae512203b352d309068c1d3741bcab08c5e450c772f2a4d280056a4aa9d38c
7
- data.tar.gz: 5d5c1a72ec0f9cd82db9b2beb7ba939c2c5953fb016767f30f8cf9f3fb669b3383a97e6a0a4f3168291e4df7cb004346647ef5f8069928b60fca32ca4090c088
6
+ metadata.gz: 4e2b9575ebca00cea1f7175016acc8ed33981855cae39dad94556a582f913823292ffd407ae353f8e3f6fd9847cfad7ef19c7311871419be31ef54efdd6f585f
7
+ data.tar.gz: 7bb3568b7dd86fbd373f3a298ce0c023cf3184afa7204c4fe9da210be8b74195475804b062e442cf8d237fbc78d13eb10b39e4f1f1ffa0c0f0d3f2d232888732
data/bin/benchmark ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+ require "bundler/setup"
3
+ require "simple_cpf_cnpj"
4
+ require "benchmark"
5
+
6
+ SAMPLE_SIZE = 1_000_000
7
+ SAMPLE_LENGTH = 14 # CPF = 11; CNPJ = 14
8
+
9
+ subjects = Array.new(SAMPLE_SIZE){|_| "%0#{SAMPLE_LENGTH}u" % rand(10**SAMPLE_LENGTH) }
10
+
11
+ Benchmark.bmbm do |x|
12
+ x.report do
13
+ subjects.each{|c| CpfCnpj.valid_cpf_cnpj?(c) }
14
+ end
15
+ end
@@ -1,3 +1,3 @@
1
1
  module CpfCnpj # :nodoc:
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
@@ -119,23 +119,20 @@ module CpfCnpj
119
119
  def self._mod11_check_digit(digits, mult_max) # :nodoc:
120
120
  sum = 0
121
121
  mult = 2
122
- digits[0..-2].reverse.each_char do |digit|
123
- digit = _int_value(digit)
124
- return false unless digit.between?(0, 9)
122
+ digits[0..-2].reverse.each_byte do |digit|
123
+ digit -= 48
124
+ return false if digit < 0 || digit > 9
125
125
  sum += mult * digit
126
126
  mult += 1
127
127
  mult = 2 if mult > mult_max
128
128
  end
129
129
  sum = 11 - (sum % 11)
130
130
  sum = 0 if sum > 9
131
- _int_value(digits[-1]) == sum
131
+ (digits[-1].ord - 48) == sum
132
132
  end
133
133
 
134
134
  def self._mod11_check(digits, mult_max) # :nodoc:
135
+ return false unless digits.ascii_only?
135
136
  _mod11_check_digit(digits[0..-2], mult_max) && _mod11_check_digit(digits, mult_max)
136
137
  end
137
-
138
- def self._int_value(str) # :nodoc:
139
- str.ord - 48
140
- end
141
138
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_cpf_cnpj
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Davi Medrade
@@ -104,6 +104,7 @@ files:
104
104
  - README-pt.md
105
105
  - README.md
106
106
  - Rakefile
107
+ - bin/benchmark
107
108
  - bin/console
108
109
  - bin/setup
109
110
  - cpf_cnpj.gemspec