uni 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZjcyZGYzMGQwMmUzOGNhYmRlOTg2YWUyZWUyNjMyY2VlNDZiZDRkYQ==
4
+ YjkxZWUxYTY3ZDI0YjU5ZjY5NDM3NmE0ZmVkZmNiMTQ1MTYwZjA3MQ==
5
5
  data.tar.gz: !binary |-
6
- MjFjYmI3OWI5ZmE2ZDA4ZjI1NGFiOGE5ZDBkMjBhZmY3MmRjMGMxNQ==
6
+ OGI3MDBiZjY0NDg3MjQ3OTkzNzJkYzhhYTZhZmU0Y2QxY2NlMmFhYQ==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- N2Q3NTFmZDhmZmZlMDZkNjU1ZmVlODJjOWI5MTNiZTU2MzRjZDhhNDFhMmMw
10
- YWFlNmQ4ZDg2MmZjMjhiODQwZDUwN2UzMmExNjFhODVhMTUzMzg0MmQzODIw
11
- NzJlNTkyMjBhNGU3MTllOTkyZjhkMTk5NzMwNTAwYzk5MTQxMWY=
9
+ Yzk1MDdjODhhZGMxM2QyY2RkODM0ZjFkYjAzMjU4MzI0N2M1ZjZlN2E1ZTUx
10
+ NGIzYTMwYmM3NTViMzlmYWVhNzY2NDFiY2FkMDAzYzUzZTVlMzJiYTA0MzVi
11
+ MzM3MTAzNmVkNGI4MDQzOWFjYWJkMDI4ZWQwMjhiOTI5Y2VhNzg=
12
12
  data.tar.gz: !binary |-
13
- MDkxZWIyNTkxNWU0ZWRkNTFiYTRiZDlhMzZiMzljMGJhMDAyZjY4ZGQwMzRh
14
- NjY2ZGRlNzZlMWIyMDJlZTIwNjkxZTU3MGEwOGVmZTJmMDhhZDlmMGViNTZl
15
- MzEzNDczNDE0NTgxOTFlZTEzMDhiN2U3YzBjZmFiZWE2ZWVlNDM=
13
+ ZWU4ODVlODVjMGI5NDk1NGE2Y2NhNTdjYzg2M2ZmMjQxMWRjYzg1MWM2ZDBk
14
+ ZjA5ZTAzNjYyNTIwMzM2ZGRjOTg1ZTgyYWNjN2Y3ZTUxMWUwMGY4MmU0YmZm
15
+ MDliNTg5NGQ0OTBkMzI0MTg4MGZjNGI0OWFhYjVhMDk0NGIwY2M=
data/README.md CHANGED
@@ -1,42 +1,50 @@
1
1
  ## Uni
2
2
  Simple interface de la [Orce](http://www.orce.uni.edu.pe/).
3
- Permite visualizar informacion publica, validar codigo, obtener la letra del mismo y consultar notas (password requerido, pronto ...)
3
+ Permite visualizar informacion publica, validar codigo, obtener la letra del mismo y consultar notas del ultimo ciclo
4
4
  ## Instalacion
5
5
  ```bash
6
6
  $ gem install uni
7
7
  ```
8
+ Una vez instalado el uso es simple, solo debes requerirlo
9
+ ```ruby
10
+ require 'uni'
11
+ ```
8
12
  ## Ejemplos de uso:
9
13
  ### Obtener la letra del codigo:
10
14
  Usando el algoritmo de MOD11
11
15
  ```ruby
12
16
  Uni.codigo_uni 19741084 # => "19741084H"
17
+ Uni.codigo_uni "19741084" # => "19741084H"
13
18
  ```
14
- De ser necesario un calculo de la letra mas rapido(memoria), usar fast_uni, pero antes se debe invocar a initialize en la constante 'Uni'
19
+ ### Validar codigo
15
20
  ```ruby
16
- Uni.initialize
17
- Uni.fast_uni 19741084 # => "19741084H"
21
+ Uni.valid? "19741084K" # => false
22
+ Uni.valid? "20072531g" # => true
18
23
  ```
19
24
  ### Consultar informacion basica:
20
- Tambien llamada informacion publica, que se obtiene al hacer busqueda de alumno.
25
+ Tambien llamada informacion publica
21
26
  ```ruby
22
- Uni.data "19741084H" # => {:codigo=>"19741084H", :nombre=>"...", :facultad=>"...", ...}
27
+ Uni.data "19741084H"
28
+ # => {:codigo=>"19741084H", :nombre=>"...", :facultad=>"...", ...}
23
29
  ```
24
30
  ### Consultar cursos, seccion, evaluaciones, calificaciones, etc
25
31
  Se require conocer el codigo y password del alumno(regular).
26
32
  ```ruby
27
33
  codigo = "20152015"
28
- password = "99999"
34
+ password = "99999"
29
35
  notas = Uni.notas codigo, password
30
36
  ```
31
- Retorna un Array de Hashes, cada Hash corresponde a un curso
37
+ Retorna un Array de Hashes, cada Hash corresponde a un curso. Si la informacion proporcionada es invalida, retornara un Array.new
32
38
  ```ruby
33
- puts notas[0]
34
- # { :curso => "CALCULO RECONTRAVARIABLE", :codigo => "CB102", :seccion => "U",
35
- # :notas => {:practicas=>[["PRACTICA 1", "15", "--", "19.35%"], [...], ...],
36
- # :examenes=>[["EXAMEN PARCIAL", "13", "--", "35.48%"], ...]}}
39
+ notas[0]
40
+ # => { :curso => "Geometria Analitica", :codigo => "CB102", :seccion => "U",
41
+ # :notas => {:practicas=>[...], :examenes=>[...]}}
42
+ notas[0][:notas][:practicas][2]
43
+ # => ["PRACTICA 3", "18", "--", "16.13%"]
44
+ notas[0][:notas][:examenes][0]
45
+ # => ["EXAMEN PARCIAL", "08", "--", "32.35%"]
37
46
  ```
38
47
  ## Ideas/problemas/uso
39
- * TODO: Clase alumno, Uni.sample, filtrar, subir el modulo uni_private (cursos, notas, etc), cambiar de nombre a la gema
40
- * Sugerencias, dudas o problemas aqui en la repo o en su defecto a mi [email](mailto:cxrlospxndo@gmail.com).
48
+ * TODO: Clase alumno, Uni.sample, filtrar, cambiar de nombre a la gema
49
+ * Sugerencias, dudas o problemas en la repo([issues](https://github.com/cxrlospxndo/uni/issues)) o en su defecto a mi [email](mailto:cxrlospxndo@gmail.com).
41
50
  * De momento lo mas cool que he hecho con esta gema es obtener esta info [2013-I](http://goo.gl/hqNKI)
42
-
data/lib/uni.rb CHANGED
@@ -1,35 +1,25 @@
1
1
  require 'mechanize'
2
2
  require 'nokogiri'
3
3
 
4
+ require "uni/params"
4
5
  require "uni/version"
5
6
  require "uni/public_info"
6
7
  require "uni/private_info"
7
8
 
8
9
  module Uni
9
- class Amijo
10
- # Ejemplo
11
- # @return [String] mensaje
12
- def mister
13
- 'It works!'
14
- end
15
- # Ejemplo de uso de #codigo_uni
16
- # @return [String] codigo con su letra respectiva
17
- def step
18
- Uni::codigo_uni 20072531
19
- end
20
- # Ejemplo de uso de #fast_uni y #data
21
- # @return [Hash] informacion publica del alumno
22
- def beep
23
- Uni.initialize
24
- codigo = Uni::fast_uni 20072531
25
- data = Uni::data codigo
26
- puts data
27
- end
28
- ## cursos y notas
29
- #def top
30
- # ...
31
- #end
10
+ # Ejemplo de uso de #codigo_uni, #fast_uni y #data
11
+ # @return [Hash] informacion publica del alumno
12
+ def beep
13
+ puts Uni.codigo_uni 20072531
14
+ Uni.initialize
15
+ codigo = Uni::fast_uni 20072531
16
+ data = Uni::data codigo
17
+ puts data
32
18
  end
19
+ ## cursos y notas
20
+ #def top
21
+ # ...
22
+ #end
33
23
  end
34
24
 
35
25
 
data/lib/uni/params.rb ADDED
@@ -0,0 +1,6 @@
1
+ module Uni
2
+ URL = 'http://www.orce.uni.edu.pe/'
3
+ SITUACION = [ 'SUSPENSION VOLUNTARIA', 'ALUMNO REGULAR', 'INACTIVO', 'EN REGULARIZACION DE CURSO(S)',
4
+ 'EXPULSADO', 'INACTIVO', 'RETIRADO ', 'FALLECIDO', 'SUSPENSION ', 'PROYECTO ESPECIAL ALUMNOS UNI',
5
+ 'TITULADO', 'BACHILLER', 'EGRESADO']
6
+ end
@@ -1,4 +1,3 @@
1
- URL = "http://www.orce.uni.edu.pe/"
2
1
  module Uni
3
2
  # Falta refactorizar, aplicar buenas practicas, tests, etc
4
3
  # http://www.orce.uni.edu.pe/recordNotas.php?op=cursos&flag=notas
@@ -13,9 +12,9 @@ module Uni
13
12
  cursos = []
14
13
 
15
14
  agent = Mechanize.new
16
- params = {"txtusu" => codigo, "txtcla" => password}
17
- agent.post( URL + "logeo.php", params)
18
- agent.get URL + "recordNotas.php?op=cursos&flag=notas"
15
+ params = {'txtusu' => codigo, 'txtcla' => password}
16
+ agent.post( Uni::URL + 'logeo.php', params)
17
+ agent.get Uni::URL + 'recordNotas.php?op=cursos&flag=notas'
19
18
  pag = agent.page
20
19
  a=[]
21
20
  pag.parser.css('tr.fila td').each do |f|
@@ -25,15 +24,15 @@ module Uni
25
24
  n = a.size/5
26
25
 
27
26
  (1..n).each do |i|
28
- ans = { curso: "", codigo: "", seccion: "", notas: {} }
27
+ ans = { curso: '', codigo: '', seccion: '', notas: {} }
29
28
  ind = (i-1)*5
30
29
  curso = a[ind.. ind+4]
31
30
  ans[:codigo] = curso[0]
32
31
  ans[:curso] = curso[1]
33
32
  ans[:seccion] = curso[2]
34
33
 
35
- practicas = obtener_notas_de "Practicas", ans[:codigo], ans[:seccion], agent
36
- examenes = obtener_notas_de "Teoria", ans[:codigo], ans[:seccion], agent
34
+ practicas = obtener_notas_de 'Practicas', ans[:codigo], ans[:seccion], agent
35
+ examenes = obtener_notas_de 'Teoria', ans[:codigo], ans[:seccion], agent
37
36
 
38
37
  ans[:notas] = { practicas: practicas, examenes: examenes}
39
38
  cursos << ans
@@ -44,11 +43,11 @@ module Uni
44
43
  # @return [Array] Nota del curso
45
44
 
46
45
  def self.obtener_notas_de evaluacion, codigo, seccion, agent
47
- agent.get URL+"recordNotas.php?op=notas&tipo=#{evaluacion}&codcur=#{codigo}&facul=I&codsec=#{seccion}"
46
+ agent.get Uni::URL+"recordNotas.php?op=notas&tipo=#{evaluacion}&codcur=#{codigo}&facul=I&codsec=#{seccion}"
48
47
  pag_evaluacion = agent.page
49
48
 
50
49
  evaluacion=[]
51
- pag_evaluacion.parser.css("tr td").each_slice(4) do |f|
50
+ pag_evaluacion.parser.css('tr td').each_slice(4) do |f|
52
51
  ans = []
53
52
  f.each do |c|
54
53
  ans << c.content.gsub(/\u00a0/, '') #&nbsp
@@ -1,9 +1,5 @@
1
1
  # encoding: utf-8
2
- SITUACIONX = [ "SUSPENSION VOLUNTARIA", "ALUMNO REGULAR", "INACTIVO", "EN REGULARIZACION DE CURSO(S)", "EXPULSADO", "INACTIVO", "RETIRADO ", "FALLECIDO", "SUSPENSION ", "PROYECTO ESPECIAL ALUMNOS UNI"]
3
- SITUACIONY = [ "TITULADO", "BACHILLER", "EGRESADO"]
4
-
5
2
  module Uni
6
- SITUACION = SITUACIONX + SITUACIONY
7
3
  @x, @y = {}, {}
8
4
  @base = Mechanize.new
9
5
  # Inicializa las constantes @x y @y, para el uso de #fast_uni
@@ -19,70 +15,88 @@ module Uni
19
15
  end
20
16
  (0..9999).each do |n|
21
17
  tmp, v, ans = n, 4567, 0
22
- while( tmp != 0)
18
+ while tmp != 0
23
19
  ans += (tmp%10)*(v%10)
24
20
  v /= 10
25
21
  tmp /= 10
26
22
  end
27
23
  @y[n] = ans
28
- "Ahora puedes usar #fast_uni"
29
24
  end
25
+ 'memoria inicializada'
30
26
  end
31
27
  # Obtiene la letra del codigo (mas rapido que la implementacion #codigo_uni)
32
28
  # @see #codigo_uni
33
29
  # @param n [Fixnum] Un objeto Fixnum # 20072531
34
30
  # @return [String] El codigo con su respectiva letra # 20072531G
35
31
  def self.fast_uni n
36
- n.to_s + (65 + (@x[n/10000] + @y[n%10000])%11).chr
32
+ n.to_s + (65 + (@x[n.to_i/10000] + @y[n.to_i%10000])%11).chr
37
33
  end
38
34
  # Obtiene letra de codigo
39
35
  # @see #fast_uni
40
36
  # @param n [Fixnum] Un objeto Fixnum # 20072531
41
37
  # @return [String] El codigo con su respectiva letra # 20072531G
42
38
  def self.codigo_uni n
43
- codigo = n.to_s
39
+ n = n.to_i
40
+ codigo = n
44
41
  v, ans = 21234567, 0
45
- 8.times do
42
+ 8.times do
46
43
  ans += (n%10)*(v%10)
47
44
  v /= 10
48
45
  n /= 10
49
46
  end
50
- codigo + (65 + ans%11).chr
47
+ codigo.to_s + (65 + ans%11).chr
51
48
  end
52
- # Obtiene informacion publica de un alumno # faculta, especialidad, pic:url, ciclo_relativo, etc
53
- # @param codigo [String] Un objeto String, que representa el codigo de un estudiante # 20072531G
49
+ # Obtiene informacion publica de un alumno # facultad, especialidad, pic:url, ciclo_relativo, etc
50
+ # @param codigo [String] Un objeto String, que representa el codigo de un estudiante # 20072531G, 20072531
54
51
  # @return [Hash] Informacion publica obtenida de la Orce
55
52
 
56
- def self.data codigo
53
+ def self.data codigo
54
+ codigo = codigo_uni codigo if codigo.is_a? Fixnum
57
55
  agent = @base
58
- cod = codigo.upcase
59
- url = "http://www.orce.uni.edu.pe/detaalu.php?id=#{cod}&op=detalu"
56
+ cod = codigo.upcase
57
+ url = Uni::URL + "detaalu.php?id=#{cod}&op=detalu"
60
58
 
61
59
  page = agent.get url
62
60
  a = []
63
61
 
64
- page.parser.css("tr td").each do |f|
62
+ page.parser.css('tr td').each do |f|
65
63
  a << f.text
66
64
  end
67
65
 
68
- nombre = a[6].split("-").join(" ")
69
- return {} if nombre == ""
66
+ nombre = a[6].split('-').join(' ')
67
+ return {} if nombre == ''
70
68
  info = { codigo: codigo, nombre: nombre }
71
69
  info[:facultad] = a[9]
72
70
  info[:especialidad] = a[12]
73
71
  info[:situacion] = a[15]
74
- info[:pic] = "http://www.orce.uni.edu.pe/" + page.parser.css("img")[3]['src']
75
- info[:pic] = "NO TIENE FOTO" if /nose/ =~ info[:pic]
72
+ info[:pic] = Uni::URL + page.parser.css('img')[3]['src']
73
+ info[:pic] = 'NO TIENE FOTO' if /nose/ =~ info[:pic]
76
74
 
77
- info[:ciclo_relativo] = page.parser.xpath('//td[@bgcolor!="#ffffff"]').last.text.gsub(/[.]/, '').to_i rescue " "
75
+ info[:ciclo_relativo] = page.parser.xpath('//td[@bgcolor!="#ffffff"]').last.text.gsub(/[.]/, '').to_i rescue ' '
78
76
 
79
- if SITUACIONX.include? info[:situacion]
80
- info[:egreso] = ""
77
+ if Uni::SITUACION[0..9].include? info[:situacion]
78
+ info[:egreso] = ''
81
79
  info[:medida_disciplinaria] = a[18]
82
80
  else
83
- info[:egreso] = a[17].length == 3 ? "" : a[17]
81
+ info[:egreso] = a[17].length == 3 ? '' : a[17]
84
82
  info[:medida_disciplinaria] = a[20]
85
83
  end
86
84
  info
87
85
  end
86
+ # Valida que el codigo pertenezca a un alumno(existe)
87
+ # @param codigo [String] Un objeto String, que representa el codigo de un estudiante # 20072531G, 20072531
88
+ # @return [Boolean] es valido?
89
+ def self.valid? codigo
90
+ codigo = codigo_uni codigo if codigo.is_a? Fixnum
91
+ agent = @base
92
+ cod = codigo.upcase
93
+ url = Uni::URL + "detaalu.php?id=#{cod}&op=detalu"
94
+ page = agent.get url
95
+ a = []
96
+ page.parser.css('tr td').each do |f|
97
+ a << f.text
98
+ end
99
+ a[6].split('-').join(' ') == '' ? false:true
100
+ end
101
+ # deberia ser codigo.valid?, de momento lo dejamos en Uni.valido? "20072531a"
88
102
  end
data/lib/uni/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Uni
2
- VERSION = "0.0.7"
2
+ VERSION = '0.0.8'
3
3
  end
data/spec/lib/uni_spec.rb CHANGED
@@ -1,79 +1,146 @@
1
1
  # encoding: utf-8
2
2
  require 'spec_helper'
3
3
  describe 'Uni' do
4
-
5
- describe '#codigo_Uni' do
6
- it "returns a String" do
7
- Uni::codigo_uni(20072531).should be_an_instance_of String
4
+
5
+ context 'parameters' do
6
+ it 'has correct orce''s url' do
7
+ Uni::URL.should eql 'http://www.orce.uni.edu.pe/'
8
8
  end
9
- it "returns 20072531G for 20072531" do
10
- Uni::codigo_uni(20072531).should eql "20072531G"
9
+ it 'has a collection of all posible situacion' do
10
+ Uni::SITUACION.should be_an_instance_of Array
11
11
  end
12
- it "returns 19100003B for 19100003" do
13
- Uni::codigo_uni(19100003).should eql "19100003B"
12
+ end
13
+
14
+ describe '#valid?' do
15
+ specify { Uni.valid?(20072531).should be_true }
16
+ specify { Uni.valid?('20072531g').should be_true }
17
+ specify { Uni.valid?('20072531a').should_not be_true }
18
+ end
19
+
20
+ describe '#codigo_Uni' do
21
+ context 'param is String' do
22
+ it 'returns a String' do
23
+ Uni::codigo_uni('20072531').should be_an_instance_of String
24
+ end
25
+ it 'returns "20072531G" for 20072531' do
26
+ Uni::codigo_uni('20072531').should eql '20072531G'
27
+ end
28
+ it 'returns "19100003B" for 19100003' do
29
+ Uni::codigo_uni('19100003').should eql '19100003B'
30
+ end
31
+ it 'returns "20090435F" for 20090435' do
32
+ Uni::codigo_uni('20090435').should eql '20090435F'
33
+ end
14
34
  end
15
- it "returns 20090435F for 20090435" do
16
- Uni::codigo_uni(20090435).should eql "20090435F"
35
+
36
+ context 'param is Fixnum' do
37
+ it 'returns a String' do
38
+ Uni::codigo_uni(20072531).should be_an_instance_of String
39
+ end
40
+ it 'returns "20072531G" for 20072531' do
41
+ Uni::codigo_uni(20072531).should eql '20072531G'
42
+ end
43
+ it 'returns "19100003B" for 19100003' do
44
+ Uni::codigo_uni(19100003).should eql '19100003B'
45
+ end
46
+ it 'returns "20090435F" for 20090435' do
47
+ Uni::codigo_uni(20090435).should eql '20090435F'
48
+ end
17
49
  end
50
+
18
51
  end
19
52
  describe '#fast_Uni' do
20
- before(:all) do
21
- Uni.initialize
22
- end
53
+ before(:all) { Uni.initialize }
23
54
 
24
- it "returns a String" do
25
- Uni::fast_uni(20072531).should be_an_instance_of String
26
- end
27
- it "returns 20072531G for 20072531" do
28
- Uni::fast_uni(20072531).should eql "20072531G"
55
+ it 'initialize memory' do
56
+ Uni.initialize.should eql 'memoria inicializada'
29
57
  end
30
- it "returns 19100003B for 19100003" do
31
- Uni::fast_uni(19100003).should eql "19100003B"
58
+
59
+ context 'param is String' do
60
+ it 'returns a String' do
61
+ Uni::fast_uni('20072531').should be_an_instance_of String
62
+ end
63
+ it 'returns "20072531G" for 20072531' do
64
+ Uni::fast_uni('20072531').should eql '20072531G'
65
+ end
66
+ it 'returns "19100003B" for 19100003' do
67
+ Uni::fast_uni('19100003').should eql '19100003B'
68
+ end
69
+ it 'returns "20090435F" for 20090435' do
70
+ Uni::fast_uni('20090435').should eql '20090435F'
71
+ end
32
72
  end
33
- it "returns 20090435F for 20090435" do
34
- Uni::fast_uni(20090435).should eql "20090435F"
73
+
74
+ context 'param is Fixnum' do
75
+ it 'returns a String' do
76
+ Uni::fast_uni(20072531).should be_an_instance_of String
77
+ end
78
+ it 'returns "20072531G" for 20072531' do
79
+ Uni::fast_uni(20072531).should eql '20072531G'
80
+ end
81
+ it 'returns "19100003B" for 19100003' do
82
+ Uni::fast_uni(19100003).should eql '19100003B'
83
+ end
84
+ it 'returns "20090435F" for 20090435' do
85
+ Uni::fast_uni(20090435).should eql '20090435F'
86
+ end
35
87
  end
88
+
36
89
  end
37
90
  describe '#data' do
38
- before(:all) do
39
- @Uni = Uni::data "20072531G"
40
- @titulado = Uni::data "19100003B"
41
- @egreso = Uni::data "19780540K"
42
- @invalid = Uni::data "20072531A"
43
- end
91
+ let(:regular) { Uni::data '20072531G' }
92
+ let(:titulado) { Uni::data '19100003B' }
93
+ let(:egresado) { Uni::data '19780540K' }
94
+ let(:invalido) { Uni::data '20072531a' }
95
+ let(:fixnum) { Uni.data 20072531 }
96
+ let(:inv_fixnum) { Uni.data 2007253 }
44
97
 
45
- it "returns a Hash if codigo valid" do
46
- @Uni.should be_an_instance_of Hash
47
- end
48
- it "returns an empty Hash if codigo invalid" do
49
- @invalid.should eql Hash.new
98
+ it 'returns a Hash' do
99
+ regular.should be_an_instance_of Hash
50
100
  end
51
- it "returns 'PANDO MORALES CARLOS ENRIQUE' for :nombre of 20072531G" do
52
- @Uni[:nombre].should eql "PANDO MORALES CARLOS ENRIQUE"
101
+ it 'returns an empty Hash if codigo is invalid' do
102
+ invalido.should eql Hash.new
103
+ inv_fixnum.should eql Hash.new
53
104
  end
54
- it "returns 'ALUMNO REGULAR' for :situacion of 20072531G" do
55
- @Uni[:situacion].should eql "ALUMNO REGULAR"
105
+ it 'works with param as Fixnum' do
106
+ fixnum[:nombre].should eql 'PANDO MORALES CARLOS ENRIQUE'
107
+ fixnum[:situacion].should eql 'ALUMNO REGULAR'
108
+ fixnum[:medida_disciplinaria].should eql 'NO TIENE'
56
109
  end
57
- it "returns 'NO TIENE' for :medida_disciplinaria of 20072531G" do
58
- @Uni[:medida_disciplinaria].should eql "NO TIENE"
110
+ it 'returns data for "20072531G"' do
111
+ regular[:nombre].should eql 'PANDO MORALES CARLOS ENRIQUE'
112
+ regular[:situacion].should eql 'ALUMNO REGULAR'
113
+ regular[:medida_disciplinaria].should eql 'NO TIENE'
59
114
  end
60
-
61
- it "returns 'ARIZOLA FRANCISCO P' for :nombre of 19100003B" do
62
- @titulado[:nombre].should eql "ARIZOLA FRANCISCO P"
115
+ it 'returns data for "19100003B"' do
116
+ titulado[:nombre].should eql 'ARIZOLA FRANCISCO P'
117
+ titulado[:situacion].should eql 'TITULADO'
118
+ titulado[:especialidad].should eql 'INGENIERÍA CIVIL'
63
119
  end
64
- it "returns 'TITULADO' for :situacion of 19100003B" do
65
- @titulado[:situacion].should eql "TITULADO"
66
- end
67
- it "returns 'INGENIERÍA CIVIL' for :especialidad of 19100003B" do
68
- @titulado[:especialidad].should eql "INGENIERÍA CIVIL"
69
- end
70
- it "returns 1993 - 1 for :egreso of 19780540K" do
71
- @egreso[:egreso].should eql "1993 - 1"
120
+ it 'returns "1993 - 1" for :egreso of "19780540K"' do
121
+ egresado[:egreso].should eql '1993 - 1'
72
122
  end
73
123
  end
74
124
  describe '#notas' do
75
- it 'returns hash of grades' do
76
- true.should eql true
125
+ xit 'returns an instance of Array' do
126
+ [].should be_an_instance_of Array
77
127
  end
128
+ xit 'returns an empty Array for invalid codigo and/or password'
129
+ xit 'works with codigo as Fixnum or String'
130
+
131
+ context 'every element of Array' do
132
+ xit 'should be an instance of Hash'
133
+ xit 'should have the keys :curso, :codigo, :seccion, :notas'
134
+ xit 'should have an instance of String as value for :curso, :codigo, :seccion'
135
+ xit 'should have an instance of Hash as value for :notas'
136
+ context ':notas' do
137
+ xit 'contains :practicas and :examenes'
138
+ context ':practicas and :examenes' do
139
+ xit 'contains an instance of Array'
140
+ xit 'contains Strings as elements'
141
+ end
142
+ end
143
+ end
144
+
78
145
  end
79
146
  end
data/uni.gemspec CHANGED
@@ -4,24 +4,24 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'uni/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "uni"
7
+ spec.name = 'uni'
8
8
  spec.version = Uni::VERSION
9
- spec.authors = ["Carlos Pando"]
10
- spec.email = ["cxrlospxndo@gmail.com"]
9
+ spec.authors = ['Carlos Pando Morales']
10
+ spec.email = ['cxrlospxndo@gmail.com']
11
11
  spec.summary = %q{Libreria en Ruby para obtener informacion basica de la Orce-Uni}
12
- spec.description = %q{Simpe interface de la orce, para consultar informacion publica y privada de un alumno}
13
- spec.homepage = "https://github.com/cxrlospxndo/uni"
14
- spec.license = "MIT"
12
+ spec.description = %q{Simple interface de la orce, para consultar informacion publica y privada de un alumno}
13
+ spec.homepage = 'http://cxrlospxndo.github.io/uni/'
14
+ spec.license = 'MIT'
15
15
 
16
- spec.add_runtime_dependency "mechanize"
17
- spec.add_runtime_dependency "nokogiri"
16
+ spec.add_runtime_dependency 'mechanize'
17
+ spec.add_runtime_dependency 'nokogiri'
18
18
 
19
- spec.add_development_dependency "bundler", "~> 1.3"
20
- spec.add_development_dependency "rake"
21
- spec.add_development_dependency "rspec"
19
+ spec.add_development_dependency 'bundler', '~> 1.3'
20
+ spec.add_development_dependency 'rake'
21
+ spec.add_development_dependency 'rspec'
22
22
 
23
23
  spec.files = `git ls-files`.split($/)
24
24
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
25
25
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
26
- spec.require_paths = ["lib"]
26
+ spec.require_paths = ['lib']
27
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uni
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
- - Carlos Pando
7
+ - Carlos Pando Morales
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-01 00:00:00.000000000 Z
11
+ date: 2013-07-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mechanize
@@ -80,7 +80,7 @@ dependencies:
80
80
  - - ! '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
- description: Simpe interface de la orce, para consultar informacion publica y privada
83
+ description: Simple interface de la orce, para consultar informacion publica y privada
84
84
  de un alumno
85
85
  email:
86
86
  - cxrlospxndo@gmail.com
@@ -94,13 +94,14 @@ files:
94
94
  - README.md
95
95
  - Rakefile
96
96
  - lib/uni.rb
97
+ - lib/uni/params.rb
97
98
  - lib/uni/private_info.rb
98
99
  - lib/uni/public_info.rb
99
100
  - lib/uni/version.rb
100
101
  - spec/lib/uni_spec.rb
101
102
  - spec/spec_helper.rb
102
103
  - uni.gemspec
103
- homepage: https://github.com/cxrlospxndo/uni
104
+ homepage: http://cxrlospxndo.github.io/uni/
104
105
  licenses:
105
106
  - MIT
106
107
  metadata: {}