id_ecuador 0.0.1 → 0.0.2.alpha

Sign up to get free protection for your applications and to get access to all the features.
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.beta.2
17
+ ## v0.0.1
17
18
 
18
- * Modificado *Railtie*. Había un error de sintaxis. Reemplazado `intializer` por `initializer`
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
  [![Build Status](https://travis-ci.org/macool/id_ecuador.png?branch=master)](https://travis-ci.org/macool/id_ecuador)
8
17
  [![Gem Version](https://badge.fury.io/rb/id_ecuador.png)](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
+ [![Code Climate](https://codeclimate.com/github/macool/id_ecuador.png)](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::Id.new "1104680135"
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::Id.new "1105680134"
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::Id.new "1104680135", auto_validate: false
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
@@ -20,6 +20,6 @@ module IdEcuador
20
20
  # @example Instanciar ID
21
21
  # IdEcuador.new("1104680135").class #=> IdEcuador::Id
22
22
  def self.new(*args)
23
- IdEcuador::Id.new(*args)
23
+ Id.new(*args)
24
24
  end
25
25
  end
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, :codigo_provincia, :tipo_id_sym
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
- validate! if @options[:auto_validate]
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
- unless options[:only].class == Array
26
- options[:only] = [options[:only]]
27
- end
25
+ options[:only] = Array options[:only]
28
26
 
29
27
 
30
28
  # poner métodos:
@@ -1,3 +1,3 @@
1
1
  module IdEcuador
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2.alpha"
3
3
  end
@@ -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.any_instance.stub(:validate!)
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
@@ -5,5 +5,6 @@ describe IdEcuador do
5
5
  it "should alias IdEcuador#new to IdEcuador::Id#new" do
6
6
  id = IdEcuador.new CEDULA_VALIDA
7
7
  id.class.should eq(IdEcuador::Id)
8
+ id.id.should eq(CEDULA_VALIDA)
8
9
  end
9
10
  end
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.1
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-09-08 00:00:00.000000000 Z
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: '0'
125
+ version: 1.3.1
138
126
  requirements: []
139
127
  rubyforge_project:
140
- rubygems_version: 1.8.24
128
+ rubygems_version: 2.0.5
141
129
  signing_key:
142
- specification_version: 3
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: