valicuit 0.2.2 → 0.2.3
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 +4 -4
- data/README.md +4 -2
- data/lib/active_model/validations/cuit_validator.rb +14 -9
- data/lib/valicuit/version.rb +1 -1
- data/spec/cuit_validator_spec.rb +7 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 24b741a2e8ab39b34b05604b34fc3c0bf7a64f9b
|
4
|
+
data.tar.gz: cc5582902091c831fdd7d0091c13fd58292c2a3f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dcd32f985e9b1b235ba76bb0e59c7773d36b2375b95f475eb007ca9fe1cbdcb547ca357b09bc94c102e5087c0a471fb8b758efe9759d4fc19f351e4edb6b7423
|
7
|
+
data.tar.gz: aba2719b8532e2bd591cfd8f564ac5f2065f1fbd32e4b320c8b4d2a87ab899852b799f3d8ba999632cc22fffeba9791604eaaf0bdfbfb5c81f1e4d0ffb10fcf3
|
data/README.md
CHANGED
@@ -9,7 +9,7 @@ Un validador de CUIT/CUIL para ActiveModel & Rails.
|
|
9
9
|
Lo de siempre... agregar esta línea en el Gemfile del proyecto:
|
10
10
|
|
11
11
|
```
|
12
|
-
gem 'valicuit'
|
12
|
+
gem 'valicuit'
|
13
13
|
```
|
14
14
|
|
15
15
|
Y, finalmente, ejecutar **bundle install**
|
@@ -52,12 +52,14 @@ Análogamente se cumple lo mismo para el género:
|
|
52
52
|
|
53
53
|
```ruby
|
54
54
|
class Persona < ActiveRecord::Base
|
55
|
-
validates :cuit, cuit: { gender_compatible: { field: :genero, male: 'M', female: 'F' } }
|
55
|
+
validates :cuit, cuit: { gender_compatible: { field: :genero, male: 'M', female: 'F', company: 'C' } }
|
56
56
|
end
|
57
57
|
```
|
58
58
|
|
59
59
|
Y se especifica el campo que representa el género en el modelo, más los valores para validar tales géneros.
|
60
60
|
|
61
|
+
Notar que la opción *company*, para validar CUITs de empresas/instituciones, es opcional (pasará la validación directamente en caso de no estar especificado) mientras que las opciones *male*, *female* y *field* no lo son.
|
62
|
+
|
61
63
|
|
62
64
|
## Tests
|
63
65
|
|
@@ -101,15 +101,20 @@ module ActiveModel
|
|
101
101
|
raise ArgumentError, 'Valicuit: gender field specification must be present!' unless options[:gender_compatible][:field].present?
|
102
102
|
raise ArgumentError, 'Valicuit: declaration of male value missing!' unless options[:gender_compatible][:male].present?
|
103
103
|
raise ArgumentError, 'Valicuit: declaration of female value missing!' unless options[:gender_compatible][:female].present?
|
104
|
-
case type
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
104
|
+
gender = case type
|
105
|
+
when '20'
|
106
|
+
options[:gender_compatible][:male]
|
107
|
+
when '27'
|
108
|
+
options[:gender_compatible][:female]
|
109
|
+
when '30', '33'
|
110
|
+
options[:gender_compatible][:company] || :pass
|
111
|
+
when '23', '24', '25', '26'
|
112
|
+
:pass
|
113
|
+
else
|
114
|
+
:dont_pass
|
115
|
+
end
|
116
|
+
|
117
|
+
gender == :pass ? true : gender == record.public_send(options[:gender_compatible][:field])
|
113
118
|
end
|
114
119
|
end
|
115
120
|
|
data/lib/valicuit/version.rb
CHANGED
data/spec/cuit_validator_spec.rb
CHANGED
@@ -193,18 +193,22 @@ RSpec.describe ActiveModel::Validations::CuitValidator do
|
|
193
193
|
end
|
194
194
|
context 'with gender compatible option' do
|
195
195
|
before do
|
196
|
-
TestModel.validates :cuit, cuit: { gender_compatible: { field: :gender, male: 'M', female: 'F' } }
|
196
|
+
TestModel.validates :cuit, cuit: { gender_compatible: { field: :gender, male: 'M', female: 'F', company: 'C' } }
|
197
197
|
end
|
198
198
|
it 'must return true when CUIT/CUIL is valid and gender part is compatible with gender model' do
|
199
199
|
expect(TestModel.new(cuit: '20120112989', gender: 'M')).to be_valid
|
200
200
|
expect(TestModel.new(cuit: '27049852032', gender: 'F')).to be_valid
|
201
|
+
expect(TestModel.new(cuit: '30615459190', gender: 'C')).to be_valid
|
202
|
+
expect(TestModel.new(cuit: '23218381669', gender: 'M')).to be_valid
|
203
|
+
expect(TestModel.new(cuit: '23218381669', gender: 'F')).to be_valid
|
201
204
|
end
|
202
|
-
it 'must return
|
203
|
-
expect(TestModel.new(cuit: '
|
205
|
+
it 'must return false when CUIT/CUIL is valid but gender part is invalid' do
|
206
|
+
expect(TestModel.new(cuit: '17049852032', gender: 'F')).to be_invalid
|
204
207
|
end
|
205
208
|
it 'must return false when CUIT/CUIL is valid but gender part is incompatible with gender model' do
|
206
209
|
expect(TestModel.new(cuit: '20120112989', gender: 'F')).to be_invalid
|
207
210
|
expect(TestModel.new(cuit: '27049852032', gender: 'M')).to be_invalid
|
211
|
+
expect(TestModel.new(cuit: '27049852032', gender: 'C')).to be_invalid
|
208
212
|
end
|
209
213
|
it 'must leave a specific message over :cuit in #errors array' do
|
210
214
|
record = TestModel.new(cuit: '20120112989', gender: 'F')
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: valicuit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lautaro Nahuel De León
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-12-
|
11
|
+
date: 2016-12-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|