id_ecuador 0.0.1 → 0.0.2.alpha
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 +7 -0
- data/CHANGELOG.md +9 -2
- data/README.md +41 -18
- data/id_ecuador.gemspec +1 -1
- data/lib/id_ecuador.rb +1 -1
- data/lib/id_ecuador/id.rb +20 -5
- data/lib/id_ecuador/model_additions.rb +1 -3
- data/lib/id_ecuador/version.rb +1 -1
- data/spec/id_ecuador/id_spec.rb +18 -2
- data/spec/id_ecuador_spec.rb +1 -0
- metadata +17 -30
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: fa902ade828ff98a419b8f8bddcfb92e1668bc96
|
4
|
+
data.tar.gz: e921f72a4b6171d04320f7b1e5d4b0f653a78e36
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 105b7d73e406cf77acb4c1b16b5e76445bf9e6e80337106660c19db01bbd06e1081313217bb5587d70b4ebf8401363066602e5c279284804b5826daa1abf1009
|
7
|
+
data.tar.gz: 85f799b2911ee6bd47fb9d71c471c2e6aa69b2e5fa2614c30abbd925452a8ca55ee460cbe81946c8686a3e6a2b6d1a43ab8482885fa667a6819af4e394254281
|
data/CHANGELOG.md
CHANGED
@@ -12,7 +12,14 @@
|
|
12
12
|
* Verificando que cuando un modelo en rails utiliza el validador, no se vuelva a instanciar otro validador a menos que la identificación (atributo) del mismo cambie.
|
13
13
|
* Agregado `factory_girl` para testing
|
14
14
|
* Tests refactored
|
15
|
+
* Modificado *Railtie*. Había un error de sintaxis. Reemplazado `intializer` por `initializer`
|
15
16
|
|
16
|
-
## v0.0.1
|
17
|
+
## v0.0.1
|
17
18
|
|
18
|
-
*
|
19
|
+
* Primera versión estable
|
20
|
+
* Pequeños arreglos de bugs en la implementación para Rails
|
21
|
+
|
22
|
+
## v0.0.2.alpha
|
23
|
+
|
24
|
+
* Agregados los métodos `id` y `id=` a la clase `IdEcuador::Id`
|
25
|
+
* Refactorizado el método `initialize` y `id=` para que ambos utilicen un nuevo método `evaluate!` y evitar duplicación de código
|
data/README.md
CHANGED
@@ -2,43 +2,41 @@
|
|
2
2
|
|
3
3
|
Gema para validar la cédula o ruc de Ecuador
|
4
4
|
|
5
|
+
La clase `Id` dentro del módulo `IdEcuador` permite, a partir de un número de identificación, saber:
|
6
|
+
|
7
|
+
- Si el número de identificación es válido
|
8
|
+
- El tipo de identificación, que puede ser:
|
9
|
+
- Cédula
|
10
|
+
- RUC personas naturales
|
11
|
+
- RUC empresa sector público
|
12
|
+
- RUC empresa privada o extranjera
|
13
|
+
|
5
14
|
## Status
|
6
15
|
|
7
16
|
[](https://travis-ci.org/macool/id_ecuador)
|
8
17
|
[](http://badge.fury.io/rb/id_ecuador)
|
9
|
-
|
10
|
-
## Installation
|
11
|
-
|
12
|
-
Add this line to your application's Gemfile:
|
13
|
-
|
14
|
-
gem 'id_ecuador'
|
15
|
-
|
16
|
-
And then execute:
|
17
|
-
|
18
|
-
$ bundle
|
19
|
-
|
20
|
-
Or install it yourself as:
|
21
|
-
|
22
|
-
$ gem install id_ecuador
|
18
|
+
[](https://codeclimate.com/github/macool/id_ecuador)
|
23
19
|
|
24
20
|
## Usage
|
25
21
|
|
26
22
|
```ruby
|
27
23
|
require "id_ecuador"
|
28
24
|
|
29
|
-
cedula = IdEcuador
|
25
|
+
cedula = IdEcuador.new "1104680135"
|
26
|
+
cedula.id # => "1104680135"
|
30
27
|
cedula.valid? # => true
|
31
28
|
cedula.tipo_id # => "Cédula Persona natural"
|
29
|
+
cedula.tipo_id_sym # => :cedula
|
32
30
|
cedula.codigo_provincia # => 11
|
33
31
|
|
34
|
-
cedula_invalida = IdEcuador
|
32
|
+
cedula_invalida = IdEcuador.new "1105680134"
|
35
33
|
cedula_invalida.errors # => ["ID inválida"]
|
36
34
|
```
|
37
35
|
|
38
36
|
No validar automáticamente:
|
39
37
|
|
40
38
|
```ruby
|
41
|
-
cedula = IdEcuador
|
39
|
+
cedula = IdEcuador.new "1104680135", auto_validate: false
|
42
40
|
cedula.validate!.valid?
|
43
41
|
```
|
44
42
|
|
@@ -50,7 +48,17 @@ class User < ActiveRecord::Base
|
|
50
48
|
end
|
51
49
|
```
|
52
50
|
|
53
|
-
Con opciones:
|
51
|
+
### Con opciones:
|
52
|
+
|
53
|
+
Las opciones por defecto son:
|
54
|
+
|
55
|
+
```ruby
|
56
|
+
{
|
57
|
+
:allow_blank => true, # No levanta error si el atributo es nil o ""
|
58
|
+
:message => nil, # Utilizar mensajes por defecto de la gema
|
59
|
+
:only => [] # Permitir todos los tipos de ID
|
60
|
+
}
|
61
|
+
```
|
54
62
|
|
55
63
|
```ruby
|
56
64
|
class User < ActiveRecord::Base
|
@@ -62,12 +70,27 @@ Ejemplo API Rails:
|
|
62
70
|
|
63
71
|
```ruby
|
64
72
|
user = User.new identificacion: "110468135001"
|
73
|
+
user.idenfiticacion # => "110468135001"
|
65
74
|
user.identificacion_id_validator.class # => IdEcuador::Id
|
66
75
|
user.identificacion_tipo_id # => "RUC Persona natural"
|
67
76
|
user.identificacion_tipo_id_sym # => :ruc
|
68
77
|
user.identificacion_codigo_provincia # => 11
|
69
78
|
```
|
70
79
|
|
80
|
+
## Installation
|
81
|
+
|
82
|
+
Add this line to your application's Gemfile:
|
83
|
+
|
84
|
+
gem 'id_ecuador'
|
85
|
+
|
86
|
+
And then execute:
|
87
|
+
|
88
|
+
$ bundle
|
89
|
+
|
90
|
+
Or install it yourself as:
|
91
|
+
|
92
|
+
$ gem install id_ecuador
|
93
|
+
|
71
94
|
## Documentación
|
72
95
|
|
73
96
|
[rubydoc](http://rubydoc.info/github/macool/id_ecuador/master/frames)
|
data/id_ecuador.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ["a@macool.me"]
|
11
11
|
spec.description = %q{Validate Ecuador's CI and RUC}
|
12
12
|
spec.summary = %q{Gem to validate Ecuador's CI and RUC}
|
13
|
-
spec.homepage = ""
|
13
|
+
spec.homepage = "https://github.com/macool/id_ecuador"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files`.split($/)
|
data/lib/id_ecuador.rb
CHANGED
data/lib/id_ecuador/id.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
module IdEcuador
|
4
4
|
# Clase que va a analizar la cédula. Recibe un id y unas opciones
|
5
|
+
# @attr_reader [String] id Número de ID
|
5
6
|
# @attr_reader [Array] errors Los errores que tiene el ID. Array vacío si es un ID válido
|
6
7
|
#
|
7
8
|
# @attr_reader [String] tipo_id El tipo de identificación. Puede ser:
|
@@ -10,30 +11,37 @@ module IdEcuador
|
|
10
11
|
# - "Sociedad pública"
|
11
12
|
# - "Sociedad privada o extranjera"
|
12
13
|
#
|
13
|
-
# @attr_reader [Fixnum] codigo_provincia El código de la provincia del ID ingresado
|
14
|
-
#
|
15
14
|
# @attr_reader [Symbol] tipo_id_sym El tipo de identificación en símbolo. Puede ser:
|
16
15
|
# - :ruc
|
17
16
|
# - :cedula
|
18
17
|
# - :sociedad_publica
|
19
18
|
# - :sociedad_privada
|
20
19
|
#
|
20
|
+
# @attr_reader [Fixnum] codigo_provincia El código de la provincia del ID ingresado
|
21
21
|
class Id
|
22
22
|
|
23
|
-
attr_reader :errors, :tipo_id, :
|
23
|
+
attr_reader :id, :errors, :tipo_id, :tipo_id_sym, :codigo_provincia
|
24
24
|
|
25
25
|
# @param [String] id El ID que se va a analizar
|
26
26
|
# @param [Hash] options Las opciones
|
27
27
|
# @option options [Boolean] :auto_validate Validar automáticamente el ID al instanciar. <tt>true</tt> por defecto
|
28
28
|
def initialize(id="", options={})
|
29
29
|
@id = id.to_s
|
30
|
-
@errors = []
|
31
30
|
|
32
31
|
defaults = {
|
33
32
|
auto_validate: true
|
34
33
|
}
|
35
34
|
@options = defaults.merge options
|
36
|
-
|
35
|
+
evaluate!
|
36
|
+
end
|
37
|
+
|
38
|
+
# Setter para el ID
|
39
|
+
# @param [String] new_id Nuevo ID que se va a analizar
|
40
|
+
# @return [String] Nuevo ID
|
41
|
+
def id=(new_id)
|
42
|
+
@id = new_id.to_s
|
43
|
+
evaluate!
|
44
|
+
new_id
|
37
45
|
end
|
38
46
|
|
39
47
|
# @return [Boolean] Si es un ID válido o no
|
@@ -55,6 +63,13 @@ module IdEcuador
|
|
55
63
|
end
|
56
64
|
|
57
65
|
protected
|
66
|
+
# Método llamado después de #initialize y #id=
|
67
|
+
# Se encarga de correr la validación si options[:auto_validate] es true
|
68
|
+
def evaluate!
|
69
|
+
@errors = []
|
70
|
+
validate! if @options[:auto_validate]
|
71
|
+
self
|
72
|
+
end
|
58
73
|
def validate_length
|
59
74
|
if [10, 13].include?(@id.length)
|
60
75
|
true
|
@@ -22,9 +22,7 @@ module IdEcuador
|
|
22
22
|
options = defaults.merge options
|
23
23
|
|
24
24
|
# transform options[:only] to array if it's not:
|
25
|
-
|
26
|
-
options[:only] = [options[:only]]
|
27
|
-
end
|
25
|
+
options[:only] = Array options[:only]
|
28
26
|
|
29
27
|
|
30
28
|
# poner métodos:
|
data/lib/id_ecuador/version.rb
CHANGED
data/spec/id_ecuador/id_spec.rb
CHANGED
@@ -9,10 +9,26 @@ describe IdEcuador::Id do
|
|
9
9
|
id.send(:already_validated).should be_true
|
10
10
|
end
|
11
11
|
it "no debe llamar automáticamente al método validate!" do
|
12
|
-
IdEcuador::Id.
|
13
|
-
id = IdEcuador::Id.new CEDULA_VALIDA, validate: false
|
12
|
+
id = IdEcuador::Id.new CEDULA_VALIDA, auto_validate: false
|
14
13
|
id.send(:already_validated).should be_false
|
15
14
|
end
|
15
|
+
it "debe volver a correr la validación si cambia el ID con el método #id= y options[:auto_validate] está puesto" do
|
16
|
+
id = IdEcuador::Id.new
|
17
|
+
id.id = CEDULA_VALIDA
|
18
|
+
id.send(:already_validated).should be_true
|
19
|
+
end
|
20
|
+
it "no debe correr la validación si cambia el ID y options[:auto_validate] es false" do
|
21
|
+
id = IdEcuador::Id.new "", auto_validate: false
|
22
|
+
id.id = CEDULA_VALIDA
|
23
|
+
id.send(:already_validated).should be_false
|
24
|
+
end
|
25
|
+
it "el método #id= no debe dañar el resto de la funcionalidad" do
|
26
|
+
id = IdEcuador::Id.new ""
|
27
|
+
id.id = CEDULA_VALIDA
|
28
|
+
id.valid?.should be_true
|
29
|
+
id.id = CEDULA_INVALIDA
|
30
|
+
id.valid?.should be_false
|
31
|
+
end
|
16
32
|
end
|
17
33
|
|
18
34
|
describe "funcionalidad de la clase" do
|
data/spec/id_ecuador_spec.rb
CHANGED
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: id_ecuador
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.2.alpha
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Mario Andrés Correa
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-10-18 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: bundler
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,65 +27,57 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rake
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rspec
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: supermodel
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - '>='
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - '>='
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: factory_girl
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - '>='
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '0'
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - '>='
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: '0'
|
94
83
|
description: Validate Ecuador's CI and RUC
|
@@ -116,30 +105,29 @@ files:
|
|
116
105
|
- spec/id_ecuador/model_additions_spec.rb
|
117
106
|
- spec/id_ecuador_spec.rb
|
118
107
|
- spec/spec_helper.rb
|
119
|
-
homepage:
|
108
|
+
homepage: https://github.com/macool/id_ecuador
|
120
109
|
licenses:
|
121
110
|
- MIT
|
111
|
+
metadata: {}
|
122
112
|
post_install_message:
|
123
113
|
rdoc_options: []
|
124
114
|
require_paths:
|
125
115
|
- lib
|
126
116
|
required_ruby_version: !ruby/object:Gem::Requirement
|
127
|
-
none: false
|
128
117
|
requirements:
|
129
|
-
- -
|
118
|
+
- - '>='
|
130
119
|
- !ruby/object:Gem::Version
|
131
120
|
version: '0'
|
132
121
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
133
|
-
none: false
|
134
122
|
requirements:
|
135
|
-
- -
|
123
|
+
- - '>'
|
136
124
|
- !ruby/object:Gem::Version
|
137
|
-
version:
|
125
|
+
version: 1.3.1
|
138
126
|
requirements: []
|
139
127
|
rubyforge_project:
|
140
|
-
rubygems_version:
|
128
|
+
rubygems_version: 2.0.5
|
141
129
|
signing_key:
|
142
|
-
specification_version:
|
130
|
+
specification_version: 4
|
143
131
|
summary: Gem to validate Ecuador's CI and RUC
|
144
132
|
test_files:
|
145
133
|
- spec/factories.rb
|
@@ -147,4 +135,3 @@ test_files:
|
|
147
135
|
- spec/id_ecuador/model_additions_spec.rb
|
148
136
|
- spec/id_ecuador_spec.rb
|
149
137
|
- spec/spec_helper.rb
|
150
|
-
has_rdoc:
|