uni 0.0.5 → 0.0.6
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 +8 -8
- data/README.md +22 -19
- data/Rakefile +2 -0
- data/lib/uni.rb +18 -1
- data/lib/uni/public_info.rb +9 -8
- data/lib/uni/version.rb +1 -1
- data/spec/lib/uni_spec.rb +74 -0
- data/spec/spec_helper.rb +12 -0
- data/uni.gemspec +7 -5
- metadata +24 -6
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YTViOTAyZWE2OGFhMjAzMWM3NTcyYmY4NjI0ZjRiMDdkZmI0MTgyOA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZjYwOTcwZTFkZmEzZTVmZjRjMGI5MTg4NzlmNTBiYzFlMGZlNmYwMA==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YWI5NzE3ODFiY2EwYWRkNTkwNjRiZTlmYzA0MjgzZjA2YzZjZTc4MjdiYzRi
|
10
|
+
NzQyNGU3NTM5ZTM3ZTgzYWQ5ODFkZjZiZjljYzRjM2NmZWUyN2E5NWViYWRh
|
11
|
+
OTIzZGE2ZGJiN2Y5NGY0ZjQ4MzcwMDZhZGJjMDY4NzQxY2M4ZWY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YjRhZWU3YmRlYzUwYzFkYzVjYjUzN2JiNmQ4NGZlODM0ZmU3Yjc5ZmIxY2E2
|
14
|
+
ODJhZDliOWVmNjQ3ZjA0NmMyYTc4MmNjY2E5ODAwMWJhNmQ5M2EyMjAwZTdh
|
15
|
+
N2Y0YjQyM2Y4MTI2NzI3NWMxYjVkNGY5ZGVjY2IzNmY3NTgwMmM=
|
data/README.md
CHANGED
@@ -1,29 +1,32 @@
|
|
1
|
-
|
1
|
+
Simple interface de la [Orce](http://www.orce.uni.edu.pe/).
|
2
|
+
Permite visualizar informacion publica, validar codigo, obtener la letra del mismo y consultar notas (password requerido)
|
2
3
|
|
3
|
-
|
4
|
+
Instalacion
|
4
5
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
gem 'uni'
|
6
|
+
```bash
|
7
|
+
$ gem install uni
|
8
|
+
```
|
10
9
|
|
11
|
-
|
10
|
+
## Ejemplos de uso:
|
12
11
|
|
13
|
-
|
12
|
+
### Obtener la letra del codigo:
|
14
13
|
|
15
|
-
|
14
|
+
```ruby
|
15
|
+
Uni::codigo_uni 19741084 # => "19741084H"
|
16
|
+
```
|
17
|
+
De ser necesario un calculo de la letra mas rapido, usar fast_uni, pero antes se debe invocar a initialize en la constante 'Uni'
|
16
18
|
|
17
|
-
|
19
|
+
```ruby
|
20
|
+
Uni.initialize
|
21
|
+
Uni::fast_uni 19741084 # => "19741084H"
|
22
|
+
```
|
18
23
|
|
19
|
-
|
24
|
+
### Consultar informacion basica:
|
20
25
|
|
21
|
-
|
26
|
+
```ruby
|
27
|
+
Uni.data "19741084H" # => {:codigo=>"19741084H", :nombre=>"REYN...", :facultad=>"INGENIERÍA...", ..., :situacion=>"TITULADO"}
|
28
|
+
```
|
22
29
|
|
23
|
-
|
30
|
+
* Sugerencias, dudas o problemas aqui en la repo o en su defecto a mi [email](mailto:cxrlospxndo@gmail.com).
|
31
|
+
* De momento lo mas cool que he hecho con esto es obtener esta info [2013-I](http://goo.gl/hqNKI)
|
24
32
|
|
25
|
-
1. Fork it
|
26
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
27
|
-
3. Commit your changes (`git commit -am 'Add some feature'`)
|
28
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
29
|
-
5. Create new Pull Request
|
data/Rakefile
CHANGED
data/lib/uni.rb
CHANGED
@@ -3,12 +3,29 @@ require "uni/public_info"
|
|
3
3
|
|
4
4
|
module Uni
|
5
5
|
class Amijo
|
6
|
+
# Ejemplo
|
7
|
+
# @return [String] mensaje
|
6
8
|
def mister
|
7
|
-
|
9
|
+
'It works!'
|
8
10
|
end
|
11
|
+
# Ejemplo de uso de #codigo_uni
|
12
|
+
# @return [String] codigo con su letra respectiva
|
9
13
|
def step
|
10
14
|
Uni::codigo_uni 20072531
|
11
15
|
end
|
16
|
+
# Ejemplo de uso de #fast_uni y #data
|
17
|
+
# @return [Hash] informacion publica del alumno
|
18
|
+
def beep
|
19
|
+
Uni.initialize
|
20
|
+
codigo = Uni::fast_uni 20072531
|
21
|
+
data = Uni::data codigo
|
22
|
+
puts data
|
23
|
+
end
|
24
|
+
|
25
|
+
## cursos y notas
|
26
|
+
#def top
|
27
|
+
# ...
|
28
|
+
#end
|
12
29
|
end
|
13
30
|
end
|
14
31
|
|
data/lib/uni/public_info.rb
CHANGED
@@ -8,7 +8,7 @@ module Uni
|
|
8
8
|
SITUACION = SITUACIONX + SITUACIONY
|
9
9
|
@x, @y = {}, {}
|
10
10
|
@base = Mechanize.new
|
11
|
-
# Inicializa las constantes @x y @y
|
11
|
+
# Inicializa las constantes @x y @y, para el uso de #fast_uni
|
12
12
|
def self.initialize
|
13
13
|
(1900..2014).each do |n|
|
14
14
|
tmp, v, ans = n, 2123, 0
|
@@ -27,19 +27,20 @@ module Uni
|
|
27
27
|
tmp /= 10
|
28
28
|
end
|
29
29
|
@y[n] = ans
|
30
|
+
"Ahora puedes usar #fast_uni"
|
30
31
|
end
|
31
32
|
end
|
32
|
-
# Obtiene letra
|
33
|
+
# Obtiene la letra del codigo (mas rapido que la implementacion #codigo_uni)
|
33
34
|
# @see #codigo_uni
|
34
|
-
# @param n [Fixnum] Un objeto Fixnum
|
35
|
-
# @return [String] El codigo con su respectiva letra
|
35
|
+
# @param n [Fixnum] Un objeto Fixnum # 20072531
|
36
|
+
# @return [String] El codigo con su respectiva letra # 20072531G
|
36
37
|
def self.fast_uni n
|
37
38
|
n.to_s + (65 + (@x[n/10000] + @y[n%10000])%11).chr
|
38
39
|
end
|
39
40
|
# Obtiene letra de codigo
|
40
41
|
# @see #fast_uni
|
41
|
-
# @param n [Fixnum] Un objeto Fixnum
|
42
|
-
# @return [String] El codigo con su respectiva letra
|
42
|
+
# @param n [Fixnum] Un objeto Fixnum # 20072531
|
43
|
+
# @return [String] El codigo con su respectiva letra # 20072531G
|
43
44
|
def self.codigo_uni n
|
44
45
|
codigo = n.to_s
|
45
46
|
v, ans = 21234567, 0
|
@@ -50,8 +51,8 @@ module Uni
|
|
50
51
|
end
|
51
52
|
codigo + (65 + ans%11).chr
|
52
53
|
end
|
53
|
-
# Obtiene informacion publica de un alumno
|
54
|
-
# @param codigo [String] Un objeto String, que representa el codigo de un estudiante
|
54
|
+
# Obtiene informacion publica de un alumno # faculta, especialidad, pic:url, ciclo_relativo, etc
|
55
|
+
# @param codigo [String] Un objeto String, que representa el codigo de un estudiante # 20072531G
|
55
56
|
# @return [Hash] Informacion publica obtenida de la Orce
|
56
57
|
|
57
58
|
def self.data codigo
|
data/lib/uni/version.rb
CHANGED
@@ -0,0 +1,74 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
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
|
8
|
+
end
|
9
|
+
it "returns 20072531G for 20072531" do
|
10
|
+
Uni::codigo_uni(20072531).should eql "20072531G"
|
11
|
+
end
|
12
|
+
it "returns 19100003B for 19100003" do
|
13
|
+
Uni::codigo_uni(19100003).should eql "19100003B"
|
14
|
+
end
|
15
|
+
it "returns 20090435F for 20090435" do
|
16
|
+
Uni::codigo_uni(20090435).should eql "20090435F"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
describe '#fast_Uni' do
|
20
|
+
before(:all) do
|
21
|
+
Uni.initialize
|
22
|
+
end
|
23
|
+
|
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"
|
29
|
+
end
|
30
|
+
it "returns 19100003B for 19100003" do
|
31
|
+
Uni::fast_uni(19100003).should eql "19100003B"
|
32
|
+
end
|
33
|
+
it "returns 20090435F for 20090435" do
|
34
|
+
Uni::fast_uni(20090435).should eql "20090435F"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
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
|
44
|
+
|
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
|
50
|
+
end
|
51
|
+
it "returns 'PANDO MORALES CARLOS ENRIQUE' for :nombre of 20072531G" do
|
52
|
+
@Uni[:nombre].should eql "PANDO MORALES CARLOS ENRIQUE"
|
53
|
+
end
|
54
|
+
it "returns 'ALUMNO REGULAR' for :situacion of 20072531G" do
|
55
|
+
@Uni[:situacion].should eql "ALUMNO REGULAR"
|
56
|
+
end
|
57
|
+
it "returns 'NO TIENE' for :medida_disciplinaria of 20072531G" do
|
58
|
+
@Uni[:medida_disciplinaria].should eql "NO TIENE"
|
59
|
+
end
|
60
|
+
|
61
|
+
it "returns 'ARIZOLA FRANCISCO P' for :nombre of 19100003B" do
|
62
|
+
@titulado[:nombre].should eql "ARIZOLA FRANCISCO P"
|
63
|
+
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"
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require "bundler/setup"
|
2
|
+
require 'rspec'
|
3
|
+
require "uni"
|
4
|
+
|
5
|
+
#UNI::initialize
|
6
|
+
|
7
|
+
RSpec.configure do |config|
|
8
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
9
|
+
config.run_all_when_everything_filtered = true
|
10
|
+
config.filter_run :focus
|
11
|
+
config.order = 'random'
|
12
|
+
end
|
data/uni.gemspec
CHANGED
@@ -9,17 +9,19 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["Carlos Pando"]
|
10
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{
|
13
|
-
|
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
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.add_runtime_dependency "mechanize"
|
17
17
|
spec.add_runtime_dependency "nokogiri"
|
18
|
+
|
19
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
20
|
+
spec.add_development_dependency "rake"
|
21
|
+
spec.add_development_dependency "rspec"
|
22
|
+
|
18
23
|
spec.files = `git ls-files`.split($/)
|
19
24
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
20
25
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
21
26
|
spec.require_paths = ["lib"]
|
22
|
-
|
23
|
-
spec.add_development_dependency "bundler", "~> 1.3"
|
24
|
-
spec.add_development_dependency "rake"
|
25
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.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carlos Pando
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mechanize
|
@@ -66,8 +66,22 @@ dependencies:
|
|
66
66
|
- - ! '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
-
|
70
|
-
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ! '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ! '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
description: Simpe interface de la orce, para consultar informacion publica y privada
|
84
|
+
de un alumno
|
71
85
|
email:
|
72
86
|
- cxrlospxndo@gmail.com
|
73
87
|
executables: []
|
@@ -82,8 +96,10 @@ files:
|
|
82
96
|
- lib/uni.rb
|
83
97
|
- lib/uni/public_info.rb
|
84
98
|
- lib/uni/version.rb
|
99
|
+
- spec/lib/uni_spec.rb
|
100
|
+
- spec/spec_helper.rb
|
85
101
|
- uni.gemspec
|
86
|
-
homepage:
|
102
|
+
homepage: https://github.com/cxrlospxndo/uni
|
87
103
|
licenses:
|
88
104
|
- MIT
|
89
105
|
metadata: {}
|
@@ -107,5 +123,7 @@ rubygems_version: 2.0.3
|
|
107
123
|
signing_key:
|
108
124
|
specification_version: 4
|
109
125
|
summary: Libreria en Ruby para obtener informacion basica de la Orce-Uni
|
110
|
-
test_files:
|
126
|
+
test_files:
|
127
|
+
- spec/lib/uni_spec.rb
|
128
|
+
- spec/spec_helper.rb
|
111
129
|
has_rdoc:
|