nifval 0.1.1 → 0.1.2
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/lib/nifval/version.rb +1 -1
- data/lib/nifval.rb +12 -8
- data/spec/nifval_spec.rb +2 -2
- metadata +3 -21
data/lib/nifval/version.rb
CHANGED
data/lib/nifval.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
|
+
# encoding: utf-8
|
1
2
|
# Adapted from http://compartecodigo.com/javascript/validar-nif-cif-nie-segun-ley-vigente-31.html
|
2
|
-
|
3
3
|
require "active_model"
|
4
4
|
|
5
5
|
module NifVal
|
6
6
|
class NifValidator < ActiveModel::EachValidator
|
7
7
|
def validate_each(record, attribute, value)
|
8
8
|
if !is_valid_nif value
|
9
|
-
record.errors
|
9
|
+
record.errors.add(attribute, "NIF/NIE Inválido")
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
@@ -25,15 +25,15 @@ module NifVal
|
|
25
25
|
nif[8] == "TRWAGMYFPDXBNJZSQVHLCKE"[nif[0..7].to_i % 23]
|
26
26
|
else
|
27
27
|
# CIF algorithm
|
28
|
-
sum = nif[2]
|
28
|
+
sum = ival(nif[2]) + ival(nif[4]) + ival(nif[6])
|
29
29
|
[1,3,5,7].each do |i|
|
30
|
-
t = (2*(nif[i]
|
31
|
-
t1 = t[0]
|
32
|
-
t2 = t[1].nil? ? 0 : t[1]
|
30
|
+
t = (2*(ival(nif[i]))).to_s
|
31
|
+
t1 = ival(t[0])
|
32
|
+
t2 = t[1].nil? ? 0 : ival(t[1])
|
33
33
|
sum += t1+t2
|
34
34
|
end
|
35
35
|
sumstr = sum.to_s
|
36
|
-
n = 10 - (sumstr[sumstr.length-1]
|
36
|
+
n = 10 - ival(sumstr[sumstr.length-1])
|
37
37
|
|
38
38
|
if nif.match(/^[KLM]{1}/)
|
39
39
|
# Special NIFs (as CIFs)
|
@@ -41,7 +41,7 @@ module NifVal
|
|
41
41
|
elsif nif.match(/^[ABCDEFGHJNPQRSUVW]{1}/)
|
42
42
|
# CIFs
|
43
43
|
nstr = n.to_s
|
44
|
-
(nif[8] == (64+n).chr) || (nif[8] == nstr[nstr.length-1])
|
44
|
+
(ival(nif[8]) == (64+n).chr) || (nif[8] == nstr[nstr.length-1])
|
45
45
|
elsif nif.match(/^[XYZ]{1}/)
|
46
46
|
# NIE
|
47
47
|
niff = nif.gsub("X","0").gsub("Y","1").gsub("Z","2")
|
@@ -51,6 +51,10 @@ module NifVal
|
|
51
51
|
end
|
52
52
|
end
|
53
53
|
end
|
54
|
+
|
55
|
+
def ival v
|
56
|
+
RUBY_VERSION<="1.8.7" ? (v - 48) : v.to_i
|
57
|
+
end
|
54
58
|
end
|
55
59
|
end
|
56
60
|
|
data/spec/nifval_spec.rb
CHANGED
@@ -28,7 +28,7 @@ describe NifVal do
|
|
28
28
|
# Invalid NIFs
|
29
29
|
context "when we check invalid NIFs" do
|
30
30
|
it "should return ERROR" do
|
31
|
-
nif_validity "
|
31
|
+
nif_validity "12345678T", false
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
@@ -42,7 +42,7 @@ describe NifVal do
|
|
42
42
|
# Invalid CIFs
|
43
43
|
context "when we check invalid CIFs" do
|
44
44
|
it "should return ERROR" do
|
45
|
-
nif_validity "
|
45
|
+
nif_validity "A2345678C", false
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
metadata
CHANGED
@@ -1,13 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nifval
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 25
|
5
4
|
prerelease:
|
6
|
-
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 1
|
10
|
-
version: 0.1.1
|
5
|
+
version: 0.1.2
|
11
6
|
platform: ruby
|
12
7
|
authors:
|
13
8
|
- Albert Bellonch
|
@@ -15,7 +10,7 @@ autorequire:
|
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
12
|
|
18
|
-
date: 2011-04-
|
13
|
+
date: 2011-04-14 00:00:00 +02:00
|
19
14
|
default_executable:
|
20
15
|
dependencies:
|
21
16
|
- !ruby/object:Gem::Dependency
|
@@ -26,10 +21,6 @@ dependencies:
|
|
26
21
|
requirements:
|
27
22
|
- - ~>
|
28
23
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 9
|
30
|
-
segments:
|
31
|
-
- 2
|
32
|
-
- 5
|
33
24
|
version: "2.5"
|
34
25
|
type: :development
|
35
26
|
version_requirements: *id001
|
@@ -41,9 +32,6 @@ dependencies:
|
|
41
32
|
requirements:
|
42
33
|
- - ">="
|
43
34
|
- !ruby/object:Gem::Version
|
44
|
-
hash: 3
|
45
|
-
segments:
|
46
|
-
- 0
|
47
35
|
version: "0"
|
48
36
|
type: :runtime
|
49
37
|
version_requirements: *id002
|
@@ -81,23 +69,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
81
69
|
requirements:
|
82
70
|
- - ">="
|
83
71
|
- !ruby/object:Gem::Version
|
84
|
-
hash: 3
|
85
|
-
segments:
|
86
|
-
- 0
|
87
72
|
version: "0"
|
88
73
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
89
74
|
none: false
|
90
75
|
requirements:
|
91
76
|
- - ">="
|
92
77
|
- !ruby/object:Gem::Version
|
93
|
-
hash: 3
|
94
|
-
segments:
|
95
|
-
- 0
|
96
78
|
version: "0"
|
97
79
|
requirements: []
|
98
80
|
|
99
81
|
rubyforge_project: nifval
|
100
|
-
rubygems_version: 1.
|
82
|
+
rubygems_version: 1.6.1
|
101
83
|
signing_key:
|
102
84
|
specification_version: 3
|
103
85
|
summary: Validates a Spanish NIF/CIF/NIE
|