rut_chileno 0.1
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/rut_chileno.rb +88 -0
- metadata +77 -0
data/lib/rut_chileno.rb
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
class RUT
|
2
|
+
|
3
|
+
def digitoValido(dv)
|
4
|
+
['0','1','2','3','4','5','6','7','8','9','k','K'].include?(dv)
|
5
|
+
end
|
6
|
+
|
7
|
+
def getDigito(rut)
|
8
|
+
dvr='0'
|
9
|
+
suma=0
|
10
|
+
mul=2
|
11
|
+
rut.reverse.split("").each do |c|
|
12
|
+
suma=suma+c.to_i*mul
|
13
|
+
if mul==7
|
14
|
+
mul=2
|
15
|
+
else
|
16
|
+
mul+=1
|
17
|
+
end
|
18
|
+
end
|
19
|
+
res=suma%11
|
20
|
+
if res==1
|
21
|
+
return 'k'
|
22
|
+
elsif res==0
|
23
|
+
return '0'
|
24
|
+
else
|
25
|
+
return 11-res
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def digitoCorrecto(crut)
|
30
|
+
return false if crut.size < 2
|
31
|
+
if crut.size > 2
|
32
|
+
rut=crut[0...crut.size-1]
|
33
|
+
else
|
34
|
+
rut=crut[0]
|
35
|
+
end
|
36
|
+
dv=crut[crut.size-1]
|
37
|
+
return false if !digitoValido(dv)
|
38
|
+
if rut.nil? || dv.nil?
|
39
|
+
return 0 #TODO ?
|
40
|
+
end
|
41
|
+
dvr=getDigito(rut)
|
42
|
+
dvr==dv.downcase
|
43
|
+
end
|
44
|
+
|
45
|
+
def quitarFormato(rut)
|
46
|
+
rut=rut.delete "."
|
47
|
+
rut=rut.delete "-"
|
48
|
+
end
|
49
|
+
|
50
|
+
def validar(texto)
|
51
|
+
texto=self.quitarFormato(texto)
|
52
|
+
return false if texto.size < 2
|
53
|
+
texto.split("").each do |c|
|
54
|
+
return false if !digitoValido(c)
|
55
|
+
end
|
56
|
+
invertido=texto.reverse
|
57
|
+
dtexto=invertido[0]+"-"
|
58
|
+
cnt=0
|
59
|
+
i=1
|
60
|
+
j=2
|
61
|
+
for x in 1...texto.size do
|
62
|
+
if cnt==3
|
63
|
+
dtexto=dtexto+"."
|
64
|
+
j+=1
|
65
|
+
dtexto=dtexto+invertido[x]
|
66
|
+
cnt=1
|
67
|
+
else
|
68
|
+
dtexto=dtexto+invertido[x]
|
69
|
+
cnt+=1
|
70
|
+
end
|
71
|
+
i+=1
|
72
|
+
j+=1
|
73
|
+
end
|
74
|
+
invertido=""
|
75
|
+
i=dtexto.size-1
|
76
|
+
j=0
|
77
|
+
(0..i).to_a.reverse.each do |y|
|
78
|
+
invertido=invertido+dtexto[y]
|
79
|
+
j+=1
|
80
|
+
end
|
81
|
+
return digitoCorrecto(texto)
|
82
|
+
end
|
83
|
+
|
84
|
+
def formatear
|
85
|
+
#TODO
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
metadata
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rut_chileno
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: '0.1'
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Numerico
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-04-29 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: test/unit
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: pry
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
description:
|
47
|
+
email: webmaster@numerica.cl
|
48
|
+
executables: []
|
49
|
+
extensions: []
|
50
|
+
extra_rdoc_files: []
|
51
|
+
files:
|
52
|
+
- lib/rut_chileno.rb
|
53
|
+
homepage: https://github.com/Numerico/rut-chileno
|
54
|
+
licenses: []
|
55
|
+
post_install_message:
|
56
|
+
rdoc_options: []
|
57
|
+
require_paths:
|
58
|
+
- lib
|
59
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
60
|
+
none: false
|
61
|
+
requirements:
|
62
|
+
- - ! '>='
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: '0'
|
65
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ! '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
requirements: []
|
72
|
+
rubyforge_project:
|
73
|
+
rubygems_version: 1.8.25
|
74
|
+
signing_key:
|
75
|
+
specification_version: 3
|
76
|
+
summary: formateo y validacion R.U.T.
|
77
|
+
test_files: []
|