validates_cnpj 0.1.2 → 1.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.
- data/.rvmrc +1 -1
- data/lib/validates_cnpj.rb +4 -1
- data/lib/validates_cnpj/remarkable/require_a_valid_cnpj_matcher.rb +29 -0
- data/lib/validates_cnpj/shoulda-matchers/{validate_as_cnpj_matcher.rb → require_a_valid_cnpj_matcher.rb} +5 -13
- data/lib/validates_cnpj/version.rb +1 -1
- data/spec/fake_app/db/create_companies.rb +3 -2
- data/spec/validates_cnpj/remarkable/validate_as_cnpj_matcher_spec.rb +20 -0
- data/spec/validates_cnpj/shoulda-matchers/validate_as_cnpj_matcher_spec.rb +20 -0
- data/validates_cnpj.gemspec +1 -1
- metadata +51 -21
- data/lib/validates_cnpj/remarkable/validate_as_cnpj_matcher.rb +0 -34
- data/spec/remarkable/validate_as_cnpj_matcher_spec.rb +0 -26
- data/spec/shoulda-matchers/validate_as_cnpj_matcher_spec.rb +0 -26
data/.rvmrc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
rvm use 1.9.3-
|
1
|
+
rvm use 1.9.3-p194@validates_cnpj
|
data/lib/validates_cnpj.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
|
-
require "active_model"
|
2
1
|
require "validates_cnpj/cnpj"
|
3
2
|
|
3
|
+
#Rspec Matchers
|
4
|
+
require "validates_cnpj/shoulda-matchers/require_a_valid_cnpj_matcher" if defined?(::Shoulda)
|
5
|
+
require "validates_cnpj/remarkable/require_a_valid_cnpj_matcher" if defined?(::Remarkable)
|
6
|
+
|
4
7
|
class CnpjValidator < ActiveModel::EachValidator
|
5
8
|
def validate_each(record, attribute, value)
|
6
9
|
record.errors[attribute] << I18n.t("errors.messages.invalid") unless CNPJ.new(value).valid?
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'remarkable/active_model'
|
2
|
+
|
3
|
+
module Remarkable
|
4
|
+
module ActiveModel
|
5
|
+
module Matchers
|
6
|
+
class RequireAValidCnpjMatcher < Remarkable::ActiveModel::Base
|
7
|
+
arguments :cnpj
|
8
|
+
|
9
|
+
collection_assertions :disallow_invalid_value, :allow_valid_value
|
10
|
+
|
11
|
+
protected
|
12
|
+
|
13
|
+
def disallow_invalid_value
|
14
|
+
@subject.cnpj = '123456'
|
15
|
+
@subject.valid?.errors[:cnpj].should == ['is invalid']
|
16
|
+
end
|
17
|
+
|
18
|
+
def allow_valid_value
|
19
|
+
@subject.cnpj = nil
|
20
|
+
@subject.valid?.errors[:cnpj].should == []
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def require_a_valid_cnpj(*args, &block)
|
25
|
+
RequireAValidCnpjMatcher.new(*args, &block).spec(self)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -3,27 +3,23 @@ require "shoulda-matchers"
|
|
3
3
|
module Shoulda
|
4
4
|
module Matchers
|
5
5
|
module ActiveModel
|
6
|
-
def
|
7
|
-
|
6
|
+
def require_a_valid_cnpj(attr = :cnpj)
|
7
|
+
RequireAValidCnpjMatcher.new(attr)
|
8
8
|
end
|
9
9
|
|
10
|
-
class
|
10
|
+
class RequireAValidCnpjMatcher < ValidationMatcher
|
11
11
|
def initialize(attribute)
|
12
12
|
@attribute = attribute
|
13
13
|
end
|
14
14
|
|
15
15
|
def description
|
16
|
-
"
|
17
|
-
end
|
18
|
-
|
19
|
-
def failure_message
|
20
|
-
"expected #{@attribute} to be validated as a valid CNPJ number"
|
16
|
+
"require a valid CNPJ number"
|
21
17
|
end
|
22
18
|
|
23
19
|
def matches?(subject)
|
24
20
|
super(subject)
|
25
21
|
|
26
|
-
disallows_invalid_value and allows_valid_value
|
22
|
+
disallows_invalid_value and allows_valid_value
|
27
23
|
end
|
28
24
|
|
29
25
|
private
|
@@ -35,10 +31,6 @@ module Shoulda
|
|
35
31
|
def allows_valid_value
|
36
32
|
allows_value_of("51.114.450/0001-46")
|
37
33
|
end
|
38
|
-
|
39
|
-
def allows_nil_value
|
40
|
-
allows_value_of(nil)
|
41
|
-
end
|
42
34
|
end
|
43
35
|
end
|
44
36
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'remarkable/active_model'
|
3
|
+
|
4
|
+
describe Remarkable::ActiveModel::Matchers::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
|
@@ -0,0 +1,20 @@
|
|
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
|
data/validates_cnpj.gemspec
CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
|
|
22
22
|
|
23
23
|
s.add_development_dependency "rake"
|
24
24
|
s.add_development_dependency "rspec", ">= 2.0.0"
|
25
|
-
s.add_development_dependency "shoulda-matchers", ">= 1.
|
25
|
+
s.add_development_dependency "shoulda-matchers", ">= 1.2.0"
|
26
26
|
s.add_development_dependency "remarkable_activerecord", "= 4.0.0.alpha4"
|
27
27
|
s.add_development_dependency "sqlite3"
|
28
28
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: validates_cnpj
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-07-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: 3.0.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 3.0.0
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: rake
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :development
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: rspec
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,32 +53,47 @@ dependencies:
|
|
43
53
|
version: 2.0.0
|
44
54
|
type: :development
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 2.0.0
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: shoulda-matchers
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ! '>='
|
53
68
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.
|
69
|
+
version: 1.2.0
|
55
70
|
type: :development
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.2.0
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: remarkable_activerecord
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
|
-
- - =
|
83
|
+
- - '='
|
64
84
|
- !ruby/object:Gem::Version
|
65
85
|
version: 4.0.0.alpha4
|
66
86
|
type: :development
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - '='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 4.0.0.alpha4
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: sqlite3
|
71
|
-
requirement:
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
72
97
|
none: false
|
73
98
|
requirements:
|
74
99
|
- - ! '>='
|
@@ -76,7 +101,12 @@ dependencies:
|
|
76
101
|
version: '0'
|
77
102
|
type: :development
|
78
103
|
prerelease: false
|
79
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
80
110
|
description: Validates CNPJ and test it with matchers in a simple way.
|
81
111
|
email: plribeiro3000@gmail.com
|
82
112
|
executables: []
|
@@ -92,17 +122,17 @@ files:
|
|
92
122
|
- Rakefile
|
93
123
|
- lib/validates_cnpj.rb
|
94
124
|
- lib/validates_cnpj/cnpj.rb
|
95
|
-
- lib/validates_cnpj/remarkable/
|
96
|
-
- lib/validates_cnpj/shoulda-matchers/
|
125
|
+
- lib/validates_cnpj/remarkable/require_a_valid_cnpj_matcher.rb
|
126
|
+
- lib/validates_cnpj/shoulda-matchers/require_a_valid_cnpj_matcher.rb
|
97
127
|
- lib/validates_cnpj/version.rb
|
98
128
|
- spec/fake_app/admin.rb
|
99
129
|
- spec/fake_app/company.rb
|
100
130
|
- spec/fake_app/db/create_admins.rb
|
101
131
|
- spec/fake_app/db/create_companies.rb
|
102
|
-
- spec/remarkable/validate_as_cnpj_matcher_spec.rb
|
103
|
-
- spec/shoulda-matchers/validate_as_cnpj_matcher_spec.rb
|
104
132
|
- spec/spec_helper.rb
|
105
133
|
- spec/validates_cnpj/cnpj_spec.rb
|
134
|
+
- spec/validates_cnpj/remarkable/validate_as_cnpj_matcher_spec.rb
|
135
|
+
- spec/validates_cnpj/shoulda-matchers/validate_as_cnpj_matcher_spec.rb
|
106
136
|
- spec/validates_cnpj_spec.rb
|
107
137
|
- validates_cnpj.gemspec
|
108
138
|
homepage: ''
|
@@ -125,7 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
125
155
|
version: '0'
|
126
156
|
requirements: []
|
127
157
|
rubyforge_project: validates_cnpj
|
128
|
-
rubygems_version: 1.8.
|
158
|
+
rubygems_version: 1.8.24
|
129
159
|
signing_key:
|
130
160
|
specification_version: 3
|
131
161
|
summary: CNPJ Validation GEM
|
@@ -1,34 +0,0 @@
|
|
1
|
-
require 'remarkable/active_record'
|
2
|
-
|
3
|
-
module Remarkable
|
4
|
-
module ActiveRecord
|
5
|
-
module Matchers
|
6
|
-
class ValidateAsCnpjMatcher < Remarkable::ActiveRecord::Base
|
7
|
-
arguments :cnpj
|
8
|
-
|
9
|
-
collection_assertions :cnpj_valid?, :allow_nil?, :formatted_number?
|
10
|
-
|
11
|
-
protected
|
12
|
-
|
13
|
-
def cnpj_valid?
|
14
|
-
@subject.cnpj = '123456'
|
15
|
-
@subject.valid?.errors[:cnpj].should == ['is invalid']
|
16
|
-
end
|
17
|
-
|
18
|
-
def allow_nil?
|
19
|
-
@subject.cnpj = nil
|
20
|
-
@subject.valid?.errors[:cnpj].should == []
|
21
|
-
end
|
22
|
-
|
23
|
-
def formatted_number?
|
24
|
-
@subject.cnpj = '51114450000146'
|
25
|
-
@subject.valid?.cnpj.should == '51.114.450/0001-46'
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def validate_as_cnpj(*args, &block)
|
30
|
-
ValidateAsCnpjMatcher.new(*args, &block).spec(self)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'remarkable/active_record'
|
3
|
-
|
4
|
-
describe Remarkable::ActiveRecord::Matchers::ValidateAsCnpjMatcher do
|
5
|
-
context "on a attribute which validates cnpj" do
|
6
|
-
it "should require a valid CNPJ" do
|
7
|
-
@company = Company.new(:cnpj => '123456')
|
8
|
-
@company.should validate_as_cnpj(:cnpj)
|
9
|
-
end
|
10
|
-
|
11
|
-
it "should allow a nil value" do
|
12
|
-
@company = Company.new(:cnpj => nil)
|
13
|
-
@company.should validate_as_cnpj(:cnpj)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
context "on a attribute which not validates cnpj" do
|
18
|
-
before do
|
19
|
-
@user = Admin.new(:cnpj => '123456')
|
20
|
-
end
|
21
|
-
|
22
|
-
it "should not require a valid CPF" do
|
23
|
-
@user.should_not validate_as_cnpj(:cnpj)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'shoulda-matchers'
|
3
|
-
|
4
|
-
describe Shoulda::Matchers::ActiveModel::ValidateAsCnpjMatcher do
|
5
|
-
context "on a attribute which validates cnpj" do
|
6
|
-
it "should require a valid CNPJ" do
|
7
|
-
@company = Company.new(:cnpj => '123456')
|
8
|
-
@company.should validate_as_cnpj(:cnpj)
|
9
|
-
end
|
10
|
-
|
11
|
-
it "should allow a nil value" do
|
12
|
-
@company = Company.new(:cnpj => nil)
|
13
|
-
@company.should validate_as_cnpj(:cnpj)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
context "on a attribute which not validates cnpj" do
|
18
|
-
before do
|
19
|
-
@user = Admin.new(:cnpj => '123456')
|
20
|
-
end
|
21
|
-
|
22
|
-
it "should not require a valid CPF" do
|
23
|
-
@user.should_not validate_as_cnpj(:cnpj)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|