rut_chileno 0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/rut_chileno.rb +88 -0
  2. metadata +77 -0
@@ -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: []