validates_cnpj 2.0.1 → 3.0.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.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NGMzMDM1MzMxYTQ0NGU1ZDc1OTBmYTk5YTYwODIyZmFmOWQyMTE0OQ==
5
- data.tar.gz: !binary |-
6
- ZDM5ZjA3NzJkYzVkYjAwYTI3YWY3YmUwMzI1MzhlNzQ0ZGNjNmZhYw==
2
+ SHA256:
3
+ metadata.gz: 6fe45c5e355e2676e043807b3adee04fdaae824d333df328529f397cb585f3b0
4
+ data.tar.gz: f6205a0583c337bc030944f12129bec61334655c655611fcc2b725a2e2a0ecf1
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- MGRjZjAxNGRkZTkzYmU2MzYxZTMwNDBhYjhkNzNmNDYwMDE3MTFhZWQ2MWY2
10
- YmM0M2Q3Mjg5YTdjYjA5MGVjZmZkYzY1Mjk1MDNhYTkwYWJhZDk4ZDhhNjZk
11
- YTVkMTc0MGJiOWU1NjVlNzUxM2EyNjg4YjRmNzdjNThlMDk2Nzk=
12
- data.tar.gz: !binary |-
13
- ZDEzMTkzNzZjNWI1MWNkN2IzZTM3MWVlMTg1ZDk4Njg4ODkxNTY3NWQ1MzQ0
14
- YjIxODBjYTVjNGM2Yzc4N2U1ZTlhZWMyNGRiMTZkMGFiN2FmMjljZDg0NzNm
15
- ODc5MzJiOGZhMDVhNTg3NmNiMDZiZDdmMjg3ZTEyZmRkODIwMjk=
6
+ metadata.gz: 4900d074a6a9658a0cf256ada2d30e4beb83017b94ee77d02bd0d9afd0f184d64d17d3428f8a7e9cbcf6c507b5f2cb3320100494965012b808bc5f4466f7cd3a
7
+ data.tar.gz: d09478b9a608031cb86e6bfc3724f4b09ee35f6fe90b7f8d704812dae26dec0c8c0eee5dd0aef8e3e0642f8ad742db64a121e0c93ba43b69f5478dca487f085e
@@ -0,0 +1,16 @@
1
+ require: rubocop-rspec
2
+
3
+ Gemspec/RequiredRubyVersion:
4
+ Enabled: false
5
+
6
+ Metrics/BlockLength:
7
+ Enabled: false
8
+
9
+ Metrics/LineLength:
10
+ Max: 125
11
+
12
+ RSpec/DescribedClass:
13
+ EnforcedStyle: explicit
14
+
15
+ Style/Documentation:
16
+ Enabled: false
@@ -1 +1 @@
1
- 1.9.3
1
+ 2.6.6
@@ -1,17 +1,10 @@
1
1
  rvm:
2
- - 1.8.7
3
- - 1.9.2
4
- - 1.9.3
5
- - jruby
6
- - ree
2
+ - 2.2
3
+ - 2.3
4
+ - 2.4
5
+ - 2.5
7
6
  gemfile:
8
- - gemfiles/Gemfile.rails3
9
7
  - gemfiles/Gemfile.rails4
10
- matrix:
11
- exclude:
12
- - rvm: 1.8.7
13
- gemfile: gemfiles/Gemfile.rails4
14
- - rvm: 1.9.2
15
- gemfile: gemfiles/Gemfile.rails4
16
- - rvm: ree
17
- gemfile: gemfiles/Gemfile.rails4
8
+ - gemfiles/Gemfile.rails5
9
+ before_script:
10
+ - bundle exec rubocop
data/Gemfile CHANGED
@@ -1,4 +1,6 @@
1
- source "http://rubygems.org"
1
+ # frozen_string_literal: true
2
+
3
+ source 'http://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in validates_cnpj.gemspec
4
6
  gemspec
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # ValidatesCnpj
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/validates_cnpj.png)](http://badge.fury.io/rb/validates_cnpj) [![Build Status](https://secure.travis-ci.org/plribeiro3000/validates_cnpj.png?branch=master)](http://travis-ci.org/plribeiro3000/validates_cnpj) [![Dependency Status](https://gemnasium.com/plribeiro3000/validates_cnpj.png)](https://gemnasium.com/plribeiro3000/validates_cnpj) [![Coverage Status](https://coveralls.io/repos/plribeiro3000/validates_cnpj/badge.png?branch=master)](https://coveralls.io/r/plribeiro3000/validates_cnpj) [![Code Climate](https://codeclimate.com/github/plribeiro3000/validates_cnpj.png)](https://codeclimate.com/github/plribeiro3000/validates_cnpj)
3
+ [![Gem Version](https://badge.fury.io/rb/validates_cnpj.png)](http://badge.fury.io/rb/validates_cnpj) [![Build Status](https://secure.travis-ci.org/plribeiro3000/validates_cnpj.png?branch=master)](http://travis-ci.org/plribeiro3000/validates_cnpj) [![Coverage Status](https://coveralls.io/repos/plribeiro3000/validates_cnpj/badge.png?branch=master)](https://coveralls.io/r/plribeiro3000/validates_cnpj) [![Code Climate](https://codeclimate.com/github/plribeiro3000/validates_cnpj.png)](https://codeclimate.com/github/plribeiro3000/validates_cnpj)
4
4
 
5
5
  Validates cnpj and test it in a simple way
6
6
 
@@ -23,14 +23,33 @@ Or install it yourself as:
23
23
  Just use as any other validator:
24
24
 
25
25
  ```ruby
26
- class User < ActiveRecord::Base
27
- validates :cnpj, :cnpj => true
26
+ class Company < ActiveRecord::Base
27
+ validates :cnpj, cnpj: true
28
28
  end
29
29
  ```
30
30
 
31
- ## Notes
31
+ To force the attribute to be masked pass option `mask`:
32
32
 
33
- It will load a macher to test automatically if the gem is below shoulda-matchers.
33
+ ```ruby
34
+ class Company < ActiveRecord::Base
35
+ validates :cnpj, cnpj: { mask: true }
36
+ end
37
+ ```
38
+
39
+ ## Testing
40
+
41
+ Require the matcher:
42
+
43
+ ```ruby
44
+ require 'validates_cnpj/require_a_valid_cnpj_matcher'
45
+ ```
46
+
47
+ Use in your tests:
48
+
49
+ ```ruby
50
+ it { is_expected.to require_a_valid_cnpj } # It will test the attribute :cnpj by default
51
+ it { is_expected.to require_a_valid_cnpj(:id) }
52
+ ```
34
53
 
35
54
  ## Mantainers
36
55
  [@plribeiro3000](https://github.com/plribeiro3000)
data/Rakefile CHANGED
@@ -1,7 +1,9 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
3
5
 
4
6
  RSpec::Core::RakeTask.new
5
7
 
6
- desc "Default Task"
7
- task :default => [ :spec ]
8
+ desc 'Default Task'
9
+ task default: [:spec]
@@ -1,5 +1,5 @@
1
1
  source :rubygems
2
2
 
3
- gem 'activesupport', '>= 4.0.0'
3
+ gem 'activesupport', '>= 4.0.0', '< 5.0.0'
4
4
 
5
5
  gemspec :path => '../'
@@ -0,0 +1,5 @@
1
+ source :rubygems
2
+
3
+ gem 'activesupport', '>= 5.0.0'
4
+
5
+ gemspec :path => '../'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'validates_cnpj/cnpj_validator'
2
4
  require 'validates_cnpj/require_a_valid_cnpj_matcher' if defined?(::Shoulda)
3
5
 
@@ -1,45 +1,47 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ValidatesCnpj
2
4
  class Cnpj
3
5
  def initialize(number)
4
- number =~ /^(\d{2}\.?\d{3}\.?\d{3}\/?\d{4})-?(\d{2})$/
6
+ number =~ %r{^(\d{2}\.?\d{3}\.?\d{3}/?\d{4})-?(\d{2})$}
5
7
  @number = number
6
- @pure_number = $1
7
- @result = $2
8
- @cleaned_number = @pure_number.nil? ? nil : @number.gsub(/[\.\/-]/, "")
8
+ @pure_number = Regexp.last_match(1)
9
+ @result = Regexp.last_match(2)
10
+ @cleaned_number = @pure_number.nil? ? nil : @number.gsub(%r{[\./-]}, '')
9
11
  format_number! if @pure_number
10
12
  end
11
13
 
12
14
  def valid?
13
15
  return true if @number.blank?
14
16
  return false unless @pure_number
17
+
15
18
  check_cnpj
16
19
  end
17
20
 
18
- def number
19
- @number
20
- end
21
+ attr_reader :number
21
22
 
22
23
  private
23
24
 
24
25
  def check_cnpj
25
- return false if @cleaned_number.length != 14 or @cleaned_number.scan(/\d/).uniq.length == 1
26
+ return false if (@cleaned_number.length != 14) || (@cleaned_number.scan(/\d/).uniq.length == 1)
27
+
26
28
  @result == first_digit_verifier + second_digit_verifier
27
29
  end
28
30
 
29
31
  def first_digit_verifier
30
32
  sum = multiply_and_sum([5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2], @pure_number)
31
- digit_verifier(sum%11).to_s
33
+ digit_verifier(sum % 11).to_s
32
34
  end
33
35
 
34
36
  def second_digit_verifier
35
37
  sum = multiply_and_sum([6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2], @pure_number + first_digit_verifier)
36
- digit_verifier(sum%11).to_s
38
+ digit_verifier(sum % 11).to_s
37
39
  end
38
40
 
39
41
  def multiply_and_sum(array, number)
40
42
  multiplied = []
41
43
  number.scan(/\d{1}/).each_with_index { |e, i| multiplied[i] = e.to_i * array[i] }
42
- multiplied.inject { |s,e| s + e }
44
+ multiplied.inject { |s, e| s + e }
43
45
  end
44
46
 
45
47
  def digit_verifier(rest)
@@ -48,7 +50,14 @@ module ValidatesCnpj
48
50
 
49
51
  def format_number!
50
52
  @cleaned_number =~ /(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})/
51
- @number = "#{$1}.#{$2}.#{$3}/#{$4}-#{$5}"
53
+
54
+ match1 = Regexp.last_match(1)
55
+ match2 = Regexp.last_match(2)
56
+ match3 = Regexp.last_match(3)
57
+ match4 = Regexp.last_match(4)
58
+ match5 = Regexp.last_match(5)
59
+
60
+ @number = "#{match1}.#{match2}.#{match3}/#{match4}-#{match5}"
52
61
  end
53
62
  end
54
- end
63
+ end
@@ -1,5 +1,13 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class CnpjValidator < ActiveModel::EachValidator
2
4
  def validate_each(record, attribute, value)
3
- record.errors.add(attribute, :invalid, options) unless ValidatesCnpj::Cnpj.new(value).valid?
5
+ cnpj = ValidatesCnpj::Cnpj.new(value)
6
+
7
+ if cnpj.valid?
8
+ record.send("#{attribute}=", cnpj.number) if options[:mask]
9
+ else
10
+ record.errors.add(attribute, :invalid, options)
11
+ end
4
12
  end
5
13
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'shoulda-matchers'
2
4
  require 'active_support/core_ext/array/wrap'
3
5
 
@@ -20,4 +22,4 @@ module Shoulda
20
22
  end
21
23
  end
22
24
  end
23
- end
25
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ValidatesCnpj
2
- VERSION = '2.0.1'
4
+ VERSION = '3.0.0'
3
5
  end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe CnpjValidator do
6
+ let(:company) { Company.new }
7
+
8
+ context 'when cnpj is invalid' do
9
+ before do
10
+ company.cnpj = 12_345
11
+ allow(I18n).to receive(:t).with(:"activerecord.errors.models.company.attributes.cnpj.invalid",
12
+ default: :"activerecord.errors.messages.invalid").and_return('is invalid')
13
+ end
14
+
15
+ it 'sets object as invalid' do
16
+ expect(company.valid?).to eq(false)
17
+ end
18
+
19
+ it 'sets an error on attribute' do
20
+ company.valid?
21
+ expect(company.errors[:cnpj]).to eq(['is invalid'])
22
+ end
23
+ end
24
+
25
+ context 'when cnpj is valid' do
26
+ before do
27
+ company.cnpj = '37525685000108'
28
+ end
29
+
30
+ it 'sets object as valid' do
31
+ expect(company.valid?).to eq(true)
32
+ end
33
+
34
+ it 'does not set an error on attribute' do
35
+ company.valid?
36
+ expect(company.errors[:cnpj]).to eq([])
37
+ end
38
+ end
39
+
40
+ it 'accepts a nil value' do
41
+ expect(company.valid?).to eq(true)
42
+ end
43
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Company
2
4
  include ActiveModel::Validations
3
5
  include ActiveModel::Conversion
@@ -5,11 +7,11 @@ class Company
5
7
 
6
8
  attr_accessor :cnpj, :name
7
9
 
8
- validates :cnpj, :cnpj => true
10
+ validates :cnpj, cnpj: true
9
11
 
10
12
  def initialize(attributes = {})
11
13
  attributes.each do |key, value|
12
14
  instance_variable_set("@#{key}", value)
13
15
  end
14
16
  end
15
- end
17
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Shoulda::Matchers::ActiveModel::RequireAValidCnpjMatcher do
6
+ let(:company) { Company.new }
7
+
8
+ it 'accepts on cnpj' do
9
+ expect(company).to require_a_valid_cnpj(:cnpj)
10
+ end
11
+
12
+ it 'accepts without a specified attribute' do
13
+ expect(company).to require_a_valid_cnpj
14
+ end
15
+
16
+ it 'rejects on name' do
17
+ expect(company).not_to require_a_valid_cnpj(:name)
18
+ end
19
+ end
@@ -1,8 +1,25 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rspec'
2
4
  require 'active_model'
3
5
  require 'coveralls'
6
+ require 'jazz_fingers'
7
+ require 'shoulda-matchers'
8
+
9
+ JazzFingers.configure do |config|
10
+ config.colored_prompt = false
11
+ config.awesome_print = false
12
+ config.coolline = false
13
+ config.application_name = ValidatesCnpj
14
+ end
15
+
16
+ require 'jazz_fingers/setup'
17
+
18
+ RSpec.configure do |config|
19
+ config.include Shoulda::Matchers::ActiveModel
20
+ end
4
21
 
5
22
  Coveralls.wear!
6
23
 
7
- Dir.glob(File.dirname(__FILE__) + '/../lib/**/*.rb').each { |file| require file }
8
- Dir.glob(File.dirname(__FILE__) + '/fake_app/**/*.rb').each { |file| require file }
24
+ require File.expand_path('lib/validates_cnpj')
25
+ require File.expand_path('spec/fake_app/company')
@@ -1,91 +1,93 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe ValidatesCnpj::Cnpj do
4
- context 'should be invalid with' do
6
+ context 'with invalid option' do
5
7
  it '04.22A.284/0001-11 as number' do
6
- ValidatesCnpj::Cnpj.new('04.22A.284/0001-11').should_not be_valid
8
+ expect(ValidatesCnpj::Cnpj.new('04.22A.284/0001-11')).not_to be_valid
7
9
  end
8
10
 
9
11
  it '04.222-284.0001-11 as number' do
10
- ValidatesCnpj::Cnpj.new('04.222-284.0001-11').should_not be_valid
12
+ expect(ValidatesCnpj::Cnpj.new('04.222-284.0001-11')).not_to be_valid
11
13
  end
12
14
 
13
15
  it '04222/284/0001-11 as number' do
14
- ValidatesCnpj::Cnpj.new('04222/284/0001-11').should_not be_valid
16
+ expect(ValidatesCnpj::Cnpj.new('04222/284/0001-11')).not_to be_valid
15
17
  end
16
18
 
17
19
  it '69103604020160 as number' do
18
- ValidatesCnpj::Cnpj.new('69103604020160').should_not be_valid
20
+ expect(ValidatesCnpj::Cnpj.new('69103604020160')).not_to be_valid
19
21
  end
20
22
 
21
23
  it '00000000000000 as number' do
22
- ValidatesCnpj::Cnpj.new('00000000000000').should_not be_valid
24
+ expect(ValidatesCnpj::Cnpj.new('00000000000000')).not_to be_valid
23
25
  end
24
26
 
25
27
  it '69.103.604/0001-61 as number' do
26
- ValidatesCnpj::Cnpj.new('69.103.604/0001-61').should_not be_valid
28
+ expect(ValidatesCnpj::Cnpj.new('69.103.604/0001-61')).not_to be_valid
27
29
  end
28
30
 
29
31
  it '01618211000264 as number' do
30
- ValidatesCnpj::Cnpj.new('01618211000264').should_not be_valid
32
+ expect(ValidatesCnpj::Cnpj.new('01618211000264')).not_to be_valid
31
33
  end
32
34
 
33
35
  it '691036040001-601 as number' do
34
- ValidatesCnpj::Cnpj.new('691036040001-601').should_not be_valid
36
+ expect(ValidatesCnpj::Cnpj.new('691036040001-601')).not_to be_valid
35
37
  end
36
38
 
37
39
  it '69103604000160a as number' do
38
- ValidatesCnpj::Cnpj.new('69103604000160a').should_not be_valid
40
+ expect(ValidatesCnpj::Cnpj.new('69103604000160a')).not_to be_valid
39
41
  end
40
42
 
41
43
  it '69103604000160ABC as number' do
42
- ValidatesCnpj::Cnpj.new('69103604000160ABC').should_not be_valid
44
+ expect(ValidatesCnpj::Cnpj.new('69103604000160ABC')).not_to be_valid
43
45
  end
44
46
 
45
47
  it '6910360400016000 as number' do
46
- ValidatesCnpj::Cnpj.new('6910360400016000').should_not be_valid
48
+ expect(ValidatesCnpj::Cnpj.new('6910360400016000')).not_to be_valid
47
49
  end
48
50
  end
49
51
 
50
- context 'should be valid with' do
52
+ context 'with valid option' do
51
53
  it 'blank number' do
52
- ValidatesCnpj::Cnpj.new('').should be_valid
54
+ expect(ValidatesCnpj::Cnpj.new('')).to be_valid
53
55
  end
54
-
56
+
55
57
  it 'nil as number' do
56
- ValidatesCnpj::Cnpj.new(nil).should be_valid
58
+ expect(ValidatesCnpj::Cnpj.new(nil)).to be_valid
57
59
  end
58
60
 
59
61
  it '69103604000160 as number' do
60
- ValidatesCnpj::Cnpj.new('69103604000160').should be_valid
62
+ expect(ValidatesCnpj::Cnpj.new('69103604000160')).to be_valid
61
63
  end
62
64
 
63
65
  it '69.103.604/0001-60 as number' do
64
- ValidatesCnpj::Cnpj.new('69.103.604/0001-60').should be_valid
66
+ expect(ValidatesCnpj::Cnpj.new('69.103.604/0001-60')).to be_valid
65
67
  end
66
68
 
67
69
  it '01518211/000264 as number' do
68
- ValidatesCnpj::Cnpj.new('01518211/000264').should be_valid
70
+ expect(ValidatesCnpj::Cnpj.new('01518211/000264')).to be_valid
69
71
  end
70
72
 
71
73
  it '01.5182110002-64 as number' do
72
- ValidatesCnpj::Cnpj.new('01.5182110002-64').should be_valid
74
+ expect(ValidatesCnpj::Cnpj.new('01.5182110002-64')).to be_valid
73
75
  end
74
76
 
75
77
  it '00.000.000/1447-89 as number' do
76
- ValidatesCnpj::Cnpj.new('00.000.000/1447-89').should be_valid
78
+ expect(ValidatesCnpj::Cnpj.new('00.000.000/1447-89')).to be_valid
77
79
  end
78
80
  end
79
81
 
80
82
  context 'with a valid value' do
81
- it 'should return it formatted' do
82
- ValidatesCnpj::Cnpj.new('69103604000160').number.should == '69.103.604/0001-60'
83
+ it 'returns it formatted' do
84
+ expect(ValidatesCnpj::Cnpj.new('69103604000160').number).to eq('69.103.604/0001-60')
83
85
  end
84
86
  end
85
87
 
86
88
  context 'with an invalid value' do
87
- it 'should return as it was' do
88
- ValidatesCnpj::Cnpj.new('123456').number.should == '123456'
89
+ it 'returns as it was' do
90
+ expect(ValidatesCnpj::Cnpj.new('123456').number).to eq('123456')
89
91
  end
90
92
  end
91
- end
93
+ end
@@ -1,24 +1,30 @@
1
- # -*- encoding: utf-8 -*-
2
- require File.expand_path('../lib/validates_cnpj/version', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ require File.expand_path('lib/validates_cnpj/version', __dir__)
3
4
 
4
5
  Gem::Specification.new do |gem|
5
6
  gem.name = 'validates_cnpj'
6
7
  gem.version = ValidatesCnpj::VERSION
7
- gem.authors = %q{Paulo Henrique Lopes Ribeiro}
8
- gem.email = %q{plribeiro3000@gmail.com}
9
- gem.summary = %q{Validates CNPJ and test it with matchers in a simple way.}
8
+ gem.authors = 'Paulo Henrique Lopes Ribeiro'
9
+ gem.email = 'plribeiro3000@gmail.com'
10
+ gem.summary = 'Validates CNPJ and test it with matchers in a simple way.'
10
11
 
11
12
  gem.files = `git ls-files`.split("\n")
12
13
  gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
13
- gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
14
- gem.require_paths = %w(lib)
14
+ gem.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
15
+ gem.require_paths = %w[lib]
16
+
17
+ gem.required_ruby_version = '>= 2.2'
15
18
 
16
19
  gem.license = 'MIT'
17
20
 
21
+ gem.add_development_dependency 'coveralls'
22
+ gem.add_development_dependency 'jazz_fingers', '< 5.0.0'
18
23
  gem.add_development_dependency 'rake'
19
24
  gem.add_development_dependency 'rspec'
20
- gem.add_development_dependency 'shoulda-matchers', '2.0.0'
21
- gem.add_development_dependency 'coveralls'
25
+ gem.add_development_dependency 'rubocop'
26
+ gem.add_development_dependency 'rubocop-rspec'
27
+ gem.add_development_dependency 'shoulda-matchers'
22
28
 
23
- gem.add_runtime_dependency 'activemodel'
29
+ gem.add_runtime_dependency 'activemodel', '> 4.0', '< 6.0'
24
30
  end
metadata CHANGED
@@ -1,113 +1,161 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: validates_cnpj
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paulo Henrique Lopes Ribeiro
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-17 00:00:00.000000000 Z
11
+ date: 2020-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: coveralls
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: jazz_fingers
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "<"
32
+ - !ruby/object:Gem::Version
33
+ version: 5.0.0
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "<"
39
+ - !ruby/object:Gem::Version
40
+ version: 5.0.0
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: rake
15
43
  requirement: !ruby/object:Gem::Requirement
16
44
  requirements:
17
- - - ! '>='
45
+ - - ">="
18
46
  - !ruby/object:Gem::Version
19
47
  version: '0'
20
48
  type: :development
21
49
  prerelease: false
22
50
  version_requirements: !ruby/object:Gem::Requirement
23
51
  requirements:
24
- - - ! '>='
52
+ - - ">="
25
53
  - !ruby/object:Gem::Version
26
54
  version: '0'
27
55
  - !ruby/object:Gem::Dependency
28
56
  name: rspec
29
57
  requirement: !ruby/object:Gem::Requirement
30
58
  requirements:
31
- - - ! '>='
59
+ - - ">="
32
60
  - !ruby/object:Gem::Version
33
61
  version: '0'
34
62
  type: :development
35
63
  prerelease: false
36
64
  version_requirements: !ruby/object:Gem::Requirement
37
65
  requirements:
38
- - - ! '>='
66
+ - - ">="
39
67
  - !ruby/object:Gem::Version
40
68
  version: '0'
41
69
  - !ruby/object:Gem::Dependency
42
- name: shoulda-matchers
70
+ name: rubocop
43
71
  requirement: !ruby/object:Gem::Requirement
44
72
  requirements:
45
- - - '='
73
+ - - ">="
46
74
  - !ruby/object:Gem::Version
47
- version: 2.0.0
75
+ version: '0'
48
76
  type: :development
49
77
  prerelease: false
50
78
  version_requirements: !ruby/object:Gem::Requirement
51
79
  requirements:
52
- - - '='
80
+ - - ">="
53
81
  - !ruby/object:Gem::Version
54
- version: 2.0.0
82
+ version: '0'
55
83
  - !ruby/object:Gem::Dependency
56
- name: coveralls
84
+ name: rubocop-rspec
57
85
  requirement: !ruby/object:Gem::Requirement
58
86
  requirements:
59
- - - ! '>='
87
+ - - ">="
60
88
  - !ruby/object:Gem::Version
61
89
  version: '0'
62
90
  type: :development
63
91
  prerelease: false
64
92
  version_requirements: !ruby/object:Gem::Requirement
65
93
  requirements:
66
- - - ! '>='
94
+ - - ">="
67
95
  - !ruby/object:Gem::Version
68
96
  version: '0'
69
97
  - !ruby/object:Gem::Dependency
70
- name: activemodel
98
+ name: shoulda-matchers
71
99
  requirement: !ruby/object:Gem::Requirement
72
100
  requirements:
73
- - - ! '>='
101
+ - - ">="
74
102
  - !ruby/object:Gem::Version
75
103
  version: '0'
76
- type: :runtime
104
+ type: :development
77
105
  prerelease: false
78
106
  version_requirements: !ruby/object:Gem::Requirement
79
107
  requirements:
80
- - - ! '>='
108
+ - - ">="
81
109
  - !ruby/object:Gem::Version
82
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: activemodel
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">"
116
+ - !ruby/object:Gem::Version
117
+ version: '4.0'
118
+ - - "<"
119
+ - !ruby/object:Gem::Version
120
+ version: '6.0'
121
+ type: :runtime
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">"
126
+ - !ruby/object:Gem::Version
127
+ version: '4.0'
128
+ - - "<"
129
+ - !ruby/object:Gem::Version
130
+ version: '6.0'
83
131
  description:
84
132
  email: plribeiro3000@gmail.com
85
133
  executables: []
86
134
  extensions: []
87
135
  extra_rdoc_files: []
88
136
  files:
89
- - .gitignore
90
- - .rspec
91
- - .ruby-gemset
92
- - .ruby-version
93
- - .travis.yml
137
+ - ".gitignore"
138
+ - ".rspec"
139
+ - ".rubocop.yml"
140
+ - ".ruby-gemset"
141
+ - ".ruby-version"
142
+ - ".travis.yml"
94
143
  - Gemfile
95
144
  - LICENSE
96
145
  - README.md
97
146
  - Rakefile
98
- - gemfiles/Gemfile.rails3
99
147
  - gemfiles/Gemfile.rails4
148
+ - gemfiles/Gemfile.rails5
100
149
  - lib/validates_cnpj.rb
101
150
  - lib/validates_cnpj/cnpj.rb
102
151
  - lib/validates_cnpj/cnpj_validator.rb
103
152
  - lib/validates_cnpj/require_a_valid_cnpj_matcher.rb
104
153
  - lib/validates_cnpj/version.rb
105
- - spec/fake_app/admin.rb
154
+ - spec/cnpj_validator_spec.rb
106
155
  - spec/fake_app/company.rb
156
+ - spec/shoulda/matchers/active_model/require_a_valid_cnpj_matcher_spec.rb
107
157
  - spec/spec_helper.rb
108
158
  - spec/validates_cnpj/cnpj_spec.rb
109
- - spec/validates_cnpj/validate_as_cnpj_matcher_spec.rb
110
- - spec/validates_cnpj_spec.rb
111
159
  - validates_cnpj.gemspec
112
160
  homepage:
113
161
  licenses:
@@ -119,24 +167,22 @@ require_paths:
119
167
  - lib
120
168
  required_ruby_version: !ruby/object:Gem::Requirement
121
169
  requirements:
122
- - - ! '>='
170
+ - - ">="
123
171
  - !ruby/object:Gem::Version
124
- version: '0'
172
+ version: '2.2'
125
173
  required_rubygems_version: !ruby/object:Gem::Requirement
126
174
  requirements:
127
- - - ! '>='
175
+ - - ">="
128
176
  - !ruby/object:Gem::Version
129
177
  version: '0'
130
178
  requirements: []
131
- rubyforge_project:
132
- rubygems_version: 2.1.11
179
+ rubygems_version: 3.1.3
133
180
  signing_key:
134
181
  specification_version: 4
135
182
  summary: Validates CNPJ and test it with matchers in a simple way.
136
183
  test_files:
137
- - spec/fake_app/admin.rb
184
+ - spec/cnpj_validator_spec.rb
138
185
  - spec/fake_app/company.rb
186
+ - spec/shoulda/matchers/active_model/require_a_valid_cnpj_matcher_spec.rb
139
187
  - spec/spec_helper.rb
140
188
  - spec/validates_cnpj/cnpj_spec.rb
141
- - spec/validates_cnpj/validate_as_cnpj_matcher_spec.rb
142
- - spec/validates_cnpj_spec.rb
@@ -1,5 +0,0 @@
1
- source :rubygems
2
-
3
- gem 'activesupport', '3.2.14'
4
-
5
- gemspec :path => '../'
@@ -1,3 +0,0 @@
1
- class Admin
2
- attr_accessor :cnpj
3
- end
@@ -1,20 +0,0 @@
1
- require 'spec_helper'
2
- require 'shoulda-matchers'
3
-
4
- describe Shoulda::Matchers::ActiveModel::RequireAValidCnpjMatcher do
5
- before :each do
6
- @company = Company.new
7
- end
8
-
9
- it "should accept on cnpj" do
10
- @company.should require_a_valid_cnpj(:cnpj)
11
- end
12
-
13
- it "should accept without a specified attribute" do
14
- @company.should require_a_valid_cnpj
15
- end
16
-
17
- it "should reject on name" do
18
- @company.should_not require_a_valid_cnpj(:name)
19
- end
20
- end
@@ -1,40 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe CnpjValidator do
4
- context "when cnpj is invalid" do
5
- before :each do
6
- @company = Company.new(:cnpj => "12345")
7
- I18n.stub(:t).with(:"activerecord.errors.models.company.attributes.cnpj.invalid",
8
- :default => :"activerecord.errors.messages.invalid").and_return("is invalid")
9
- end
10
-
11
- it "should set object as invalid" do
12
- @company.valid?.should be_false
13
- end
14
-
15
- it "should set an error on attribute" do
16
- @company.valid?
17
- @company.errors[:cnpj].should == ['is invalid']
18
- end
19
- end
20
-
21
- context "when cnpj is valid" do
22
- before :each do
23
- @company = Company.new(:cnpj => "37525685000108")
24
- end
25
-
26
- it "should set object as valid" do
27
- @company.valid?.should be_true
28
- end
29
-
30
- it "should not set an error on attribute" do
31
- @company.valid?
32
- @company.errors[:cnpj].should be_blank
33
- end
34
- end
35
-
36
- it "should accept a nil value" do
37
- @company = Company.new(:cnpj => nil)
38
- @company.valid?.should be_true
39
- end
40
- end