simple_cpf_cnpj 1.0.0 → 1.0.1

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: 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