validates_cnpj 0.1.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/.rvmrc CHANGED
@@ -1 +1 @@
1
- rvm use 1.9.3-p0@validates_cnpj
1
+ rvm use 1.9.3-p194@validates_cnpj
@@ -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 validate_as_cnpj(attr)
7
- ValidateAsCnpjMatcher.new(attr)
6
+ def require_a_valid_cnpj(attr = :cnpj)
7
+ RequireAValidCnpjMatcher.new(attr)
8
8
  end
9
9
 
10
- class ValidateAsCnpjMatcher < ValidationMatcher
10
+ class RequireAValidCnpjMatcher < ValidationMatcher
11
11
  def initialize(attribute)
12
12
  @attribute = attribute
13
13
  end
14
14
 
15
15
  def description
16
- "validate #{@attribute} as a valid CNPJ number"
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 and allows_nil_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
@@ -1,3 +1,3 @@
1
1
  module ValidatesCnpj
2
- VERSION = "0.1.2"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -1,7 +1,8 @@
1
1
  class CreateCompanies < ActiveRecord::Migration
2
2
  def self.up
3
- create_table :companies do |u|
4
- u.string :cnpj
3
+ create_table :companies do |c|
4
+ c.string :cnpj
5
+ c.string :name
5
6
  end
6
7
  end
7
8
 
@@ -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
@@ -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.0.0"
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.1.2
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-02-28 00:00:00.000000000 Z
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: &12750240 !ruby/object:Gem::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: *12750240
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: &12748560 !ruby/object:Gem::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: *12748560
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: &12748020 !ruby/object:Gem::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: *12748020
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: &12747500 !ruby/object:Gem::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.0.0
69
+ version: 1.2.0
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *12747500
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: &12746940 !ruby/object:Gem::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: *12746940
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: &12746500 !ruby/object:Gem::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: *12746500
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/validate_as_cnpj_matcher.rb
96
- - lib/validates_cnpj/shoulda-matchers/validate_as_cnpj_matcher.rb
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.10
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