uniara_virtual_parser 0.0.1

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: 70ca7f52e8cb6eb38f591b934b494511e8b74251
4
+ data.tar.gz: dd096cfd52b613e8c244ffcee07a053c2e80bb80
5
+ SHA512:
6
+ metadata.gz: 4909efadac1245e39e5e6bf87ee75d115a34c4562dfc849032fa049a704d592bcac0fe41256958ae33f0377d5f832de27dbbcc728e87c15d356fe96bbb7bd7a9
7
+ data.tar.gz: acb4c5b5f9013083e47d36961edf552932624d60141dabb4296d2224c941c963700da9add4d9b37ac4cb6a5fbe3d16f9a4ec990a217a9a00635553141c08cbb0
data/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.bundle
11
+ *.so
12
+ *.o
13
+ *.a
14
+ mkmf.log
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --color
2
+ --format documentation
3
+ --require spec_helper
data/.rubocop.yml ADDED
@@ -0,0 +1,6 @@
1
+ Documentation:
2
+ Enabled: false
3
+ AllCops:
4
+ Exclude:
5
+ - 'bin/*'
6
+ - 'spec/**/*'
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ uniara_virtual_parser
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.1.5
data/.travis.yml ADDED
@@ -0,0 +1,10 @@
1
+ language: ruby
2
+ before_install:
3
+ - gem install bundler -v '~> 1.5'
4
+ rvm:
5
+ - 1.9.3
6
+ - 2.0.0
7
+ - 2.1.1
8
+ - 2.2.0
9
+ - jruby-19mode
10
+ bundler_args: --without debug
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in uniara_virtual_parser.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2015 Carlos Ribeiro
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,31 @@
1
+ # UniaraVirtualParser
2
+
3
+ A gem to parse the Uniara Virtual system.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'uniara_virtual_parser'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install uniara_virtual_parser
20
+
21
+ ## Usage
22
+
23
+ TODO: Write usage instructions here
24
+
25
+ ## Contributing
26
+
27
+ 1. Fork it ( https://github.com/duduribeiro/uniara_virtual_parser/fork )
28
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
29
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
30
+ 4. Push to the branch (`git push origin my-new-feature`)
31
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,14 @@
1
+ require 'bundler/gem_tasks'
2
+
3
+ desc 'Default task'
4
+ task default: :spec
5
+
6
+ desc 'Open an irb session preloaded with this library'
7
+ task :console do
8
+ exec 'irb -r uniara_virtual_parser -I ./lib'
9
+ end
10
+
11
+ desc 'Run specs'
12
+ task :spec do
13
+ system 'rspec .'
14
+ end
@@ -0,0 +1,26 @@
1
+ module UniaraVirtualParser
2
+ #
3
+ # This module handle the connections between all services and the
4
+ # UniaraVirtual server
5
+ #
6
+ class Client
7
+ ENDPOINT = 'http://virtual.uniara.com.br'
8
+ class << self
9
+ extend Forwardable
10
+ def_delegators :client, :post
11
+ attr_accessor :token
12
+
13
+ def get_with_token(path)
14
+ client.get(path) do |request|
15
+ request.header[:cookie] = "PHPSESSID=#{token};"
16
+ end
17
+ end
18
+
19
+ private
20
+
21
+ def client
22
+ @client ||= Hurley::Client.new ENDPOINT
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,20 @@
1
+ module UniaraVirtualParser
2
+ module Models
3
+ class Subject
4
+ attr_reader :name, :first_bimester, :second_bimester, :third_bimester,
5
+ :fourth_bimester, :substitutive, :average, :recovery, :status
6
+
7
+ def initialize(attributes = {})
8
+ @name = attributes.fetch :name
9
+ @first_bimester = attributes.fetch :first_bimester
10
+ @second_bimester = attributes.fetch :second_bimester
11
+ @third_bimester = attributes.fetch :third_bimester
12
+ @fourth_bimester = attributes.fetch :fourth_bimester
13
+ @substitutive = attributes.fetch :substitutive
14
+ @average = attributes.fetch :average
15
+ @recovery = attributes.fetch :recovery
16
+ @status = attributes.fetch :status
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,33 @@
1
+ module UniaraVirtualParser
2
+ module Services
3
+ module Grades
4
+ def grades
5
+ response = Client.get_with_token('/alunos/consultas/notas/')
6
+ parse_grades response.body
7
+ end
8
+
9
+ private
10
+
11
+ def parse_grades(html)
12
+ doc = Nokogiri::HTML(html)
13
+ subjects = []
14
+ doc.css('div#conteudo ~ table tr').each_with_index do |subject, index|
15
+ next if index.zero?
16
+
17
+ subjects << Models::Subject.new(
18
+ name: subject.css('td:nth-child(1)').text,
19
+ first_bimester: subject.css('td:nth-child(2)').text,
20
+ second_bimester: subject.css('td:nth-child(3)').text,
21
+ third_bimester: subject.css('td:nth-child(4)').text,
22
+ fourth_bimester: subject.css('td:nth-child(5)').text,
23
+ substitutive: subject.css('td:nth-child(6)').text,
24
+ average: subject.css('td:nth-child(7)').text,
25
+ recovery: subject.css('td:nth-child(8)').text,
26
+ status: subject.css('td:nth-child(9)').text
27
+ )
28
+ end
29
+ subjects
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,12 @@
1
+ module UniaraVirtualParser
2
+ module Services
3
+ module Login
4
+ def login(ra, password)
5
+ response = Client.post('/login', username: ra, senha: password)
6
+ cookies = response.header['Set-Cookie']
7
+ fail InvalidLogin unless /UVXS233E3=S/.match cookies
8
+ Client.token = cookies.match(/PHPSESSID=([^;]*);/)[1]
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,3 @@
1
+ module UniaraVirtualParser
2
+ VERSION = '0.0.1'
3
+ end
@@ -0,0 +1,22 @@
1
+ require 'hurley'
2
+ require 'nokogiri'
3
+ require 'uniara_virtual_parser/version'
4
+ require 'uniara_virtual_parser/client'
5
+ require 'uniara_virtual_parser/models/subject'
6
+ require 'uniara_virtual_parser/services/login'
7
+ require 'uniara_virtual_parser/services/grades'
8
+
9
+ include UniaraVirtualParser::Services::Login
10
+ include UniaraVirtualParser::Services::Grades
11
+
12
+ module UniaraVirtualParser
13
+ #
14
+ # Main model. Includes methods from the services
15
+ # Included:
16
+ # login(ra, password) - Do the login in UniaraVirtual
17
+ #
18
+ # All Errors:
19
+ # InvalidLogin: Raised when Login service receive invalid credentials.
20
+ #
21
+ class InvalidLogin < StandardError; end
22
+ end
@@ -0,0 +1 @@
1
+ <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\r\n<html>\r\n\t<head>\r\n\t <title>Uniara Virtual - Acad\xEAmico > Consultas > Registro de Notas</title>\r\n\t <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">\r\n\t <meta name=\"Author\" content=\"Weverton Velludo - wvelludo@uniara.com.br\">\r\n\t <meta name=\"Robots\" CONTENT=\"noindex,nofollow\">\r\n\t\t<link type=\"image/x-icon\" rel=\"shortcut icon\" href=\"http://www.uniara.com.br/favicon.ico\" />\r\n\t <link rel=\"stylesheet\" href=\"http://www.uniara.com.br/barra_navegacao.css\" type=\"text/css\">\r\n\t\t<script type=\"text/javascript\" src=\"http://www.uniara.com.br/barra_navegacao_virtual.js.php\"></script>\r\n\t <link href=\"/templates/alunos/css.css\" rel=\"stylesheet\" type=\"text/css\">\r\n \r\n\t\t<script type=\"text/javascript\" src=\"/templates/alunos/ferramentas/js/jquery.js\"></script>\r\n <script type=\"text/javascript\" src=\"/templates/alunos/ferramentas/js/jquery.jqDock.min.js\"></script>\r\n <script type=\"text/javascript\" src=\"/templates/alunos/ferramentas/js/jquery-ui-1.8.15.custom.min.js\"></script>\r\n <link type=\"text/css\" href=\"/templates/alunos/ferramentas/css/ui-lightness/jquery-ui-1.8.15.custom.css\" rel=\"stylesheet\" />\r\n \r\n\t <script src=\"/templates/js/generico.js\" type=\"text/javascript\"></script>\r\n\t <script src=\"/templates/alunos/js/generico.js\" type=\"text/javascript\"></script>\r\n\t <script src=\"/templates/js/mascaraHellas.js\"></script>\r\n\t\t<script type=\"text/javascript\">\r\n\t\t\tvar gaJsHost = ((\"https:\" == document.location.protocol) ? \"https://ssl.\" : \"http://www.\");\r\n\t\t\tdocument.write(unescape(\"%3Cscript src='\" + gaJsHost + \"google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E\"));\r\n\t\t</script>\r\n\t\t<script type=\"text/javascript\">\r\n\t\t\ttry {\r\n\t\t\t\tvar pageTracker = _gat._getTracker(\"UA-9447697-1\");\r\n\t\t\t\tpageTracker._trackPageview();\r\n\t\t\t} catch(err) {}\r\n\t\t</script>\r\n\t <script type=\"text/javascript\">\r\n\t \r\n\t\t\tfunction tempolimite() {\r\n\t\t\t\tif (atual != 0) {\r\n\t\t\t\t\tdocument.getElementById('tlimite').innerHTML = \"Tempo restante: <b>\" + atual + \"</b> min.\"\r\n\t\t\t\t\tif (atual==2) {\r\n\t\t\t\t\t\tif (pagina != \"/index.php\") {\r\n\t\t\t\t\t\t\tdocument.getElementById('limite').innerHTML = \"<table width='99%' align='center' border='0' cellpadding='3' cellspacing='1' bgcolor='#000000'><tr bgcolor='#0f3b4d'><td align='center'><font color='#FFFFFF'><b>ATEN\xC7\xC3O</b></font></td></tr><tr bgcolor='#47778b'><td align=center><b>Sua sess\xE3o est\xE1 chegando ao fim, salve as informa\xE7\xF5es para evitar perda de dados.<BR>Voc\xEA tem menos de 2 minutos para verificar e postar seus dados.</b></td></tr></table><BR>\"\r\n\t\t\t\t\t\t\tdocument.getElementById('limite2').innerHTML = \"<BR><table width='99%' align='center' border='0' cellpadding='3' cellspacing='1' bgcolor='#000000'><tr bgcolor='#0f3b4d'><td align='center'><font color='#FFFFFF'><b>ATEN\xC7\xC3O</b></font></td></tr><tr bgcolor='#47778b'><td align=center><b>Sua sess\xE3o est\xE1 chegando ao fim, salve as informa\xE7\xF5es para evitar perda de dados.<BR>Voc\xEA tem menos de 2 minutos para verificar e postar seus dados.</b></td></tr></table><BR>\"\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tatual-=1;\r\n\t\t\t\t} else {\r\n\t\t\t\t\twindow.location=\"/login/\";\r\n\t\t\t\t}\r\n\t\t\t\tsetTimeout(\"tempolimite()\",60000);\r\n \t\t}\r\n \t\t\r\n\t // Institucional\r\n\t var menu1=new Array()\r\n\t menu1[0]='<div class=dropmenu style=\"width:100%\">&nbsp;<b>Informa\xE7\xF5es</b></div>'\r\n\t menu1[1]='<a href=\"/alunos/institucional/reitor/\" class=dropmenul target=_self>Palavra do Reitor</a>'\r\n\t menu1[2]='<a href=\"http://www.uniara.com.br/institucional/a_uniara.php\" class=dropmenul target=_blank>A Uniara</a>'\r\n\t menu1[3]='<a href=\"http://www.uniara.com.br/atividades_culturais/\" class=dropmenul target=_blank>Atividades Culturais</a>'\r\n\t menu1[4]='<a href=\"http://www.uniara.com.br/esporte/\" class=dropmenul target=_blank>Esporte</a>'\r\n\t menu1[5]='<a href=\"http://www.uniara.com.br/revistauniara/default.asp\" class=dropmenul target=_blank>Revista Uniara</a>'\r\n\t menu1[6]='<a href=\"http://www.uniara.com.br/parque_do_basalto/\" class=dropmenul target=_blank>Parque do Basalto</a>'\r\n\t menu1[7]='<a href=\"http://www.uniara.com.br/ageuniara/\" class=dropmenul target=_blank>Ageuniara</a>'\r\n\t menu1[8]='<a href=\"http://www.uniara.com.br/guia_turistico/\" class=dropmenul target=_blank>Guia de Araraquara</a>'\r\n\t menu1[9]='<a href=\"http://www.uniara.com.br/visitavirtual/\" class=dropmenul target=_blank>Visita Virtual</a>'\r\n\t\r\n\t // Uniara Virtual\r\n\t var menu2=new Array()\r\n\t menu2[0]='<div class=dropmenu style=\"width:100%\">&nbsp;<b>Informa\xE7\xF5es</b></div>'\r\n\t menu2[1]='<a href=\"/alunos/virtual/apresentacao/\" class=dropmenul target=_self>Apresenta\xE7\xE3o</a>'\r\n\t menu2[2]='<div class=dropmenu style=\"width:100%\">&nbsp;<b>Contato</b></div>'\r\n\t menu2[3]='<a href=\"/alunos/contato/criticas/\" class=dropmenul target=_self>Cr\xEDticas e Sugest\xF5es</a>'\r\n\t\t\tmenu2[4]='<div class=dropmenu style=\"width:100%\">&nbsp;<b>Servi\xE7os</b></div>'\r\n\t\t\tmenu2[5]='<a href=\"/alunos/servicos/senha/\" class=dropmenul target=_self>Altera\xE7\xE3o de Senha</a>'\r\n\t\t\t\r\n\t // Academico\r\n\t var menu3=new Array()\r\n\t menu3[0]='<div class=dropmenu style=\"width:100%\">&nbsp;<b>Informa\xE7\xF5es</b></div>'\r\n\t menu3[1]='<a href=\"/alunos/informacoes/apresentacao/\" class=dropmenul target=_self>Apresenta\xE7\xE3o</a>'\r\n\t menu3[2]='<a href=\"/alunos/informacoes/duvidas/\" class=dropmenul target=_self>D\xFAvidas Freq\xFCentes</a>'\r\n\t //menu3[3]='<a href=\"#\" onclick=\"javascript:guia();\" class=dropmenul target=_self>Guia do Aluno</a>'\r\n\t menu3[4]='<a href=\"http://www.uniara.com.br/graduacao/eng_computacao/\" class=dropmenul target=_blank>Meu Curso</a>'\r\n\t menu3[5]='<div class=dropmenu style=\"width:100%\">&nbsp;<b>Consultas</b></div>'\r\n\t menu3[6]='<a href=\"/alunos/consultas/disciplinas/\" class=dropmenul target=_self>Disciplinas Matriculadas</a>'\r\n\t menu3[7]='<a href=\"/alunos/consultas/dados/\" class=dropmenul target=_self>Dados Cadastrais</a>'\r\n\t menu3[8]='<a href=\"/alunos/consultas/horario/\" class=dropmenul target=_self>Hor\xE1rio de Aula</a>'\r\n\t menu3[9]='<a href=\"/alunos/consultas/atividades/\" class=dropmenul target=_self>Atividades Complementares</a>'\r\n\t menu3[10]='<a href=\"/alunos/consultas/historico/\" class=dropmenul target=_self>Hist\xF3rico Escolar</a>'\r\n\t menu3[11]='<a href=\"/alunos/consultas/arquivos/\" class=dropmenul target=_self>Arquivos Dispon\xEDveis</a>'\r\n\t menu3[12]='<a href=\"/alunos/consultas/requerimentos/\" class=dropmenul target=_self>Requerimentos</a>'\r\n\t menu3[13]='<a href=\"/alunos/consultas/planoensino/\" class=dropmenul target=_self>Planos de Ensino das Disciplinas</a>'\r\n\t menu3[14]='<a href=\"/alunos/consultas/calendario/\" class=dropmenul target=_self>Calend\xE1rio Acad\xEAmico</a>'\r\n\t menu3[15]='<a href=\"/alunos/consultas/notas/\" class=dropmenul target=_self>Registro de Notas</a>'\r\n\t menu3[16]='<a href=\"/alunos/consultas/faltas/\" class=dropmenul target=_self>Registro de Faltas</a>'\r\n\r\n\t\t\t\t\t\t\t\r\n\r\n\t //menu3[17]='<a href=\"/alunos/consultas/mensagens/\" class=dropmenul target=_self>Caixa de Mensagens</a>'\r\n\r\n\t menu3[18]='<div class=dropmenu style=\"width:100%\">&nbsp;<b>Servi\xE7os</b></div>'\r\n\t menu3[19]='<a href=\"/alunos/servicos/dados/\" class=dropmenul target=_self>Altera\xE7\xE3o de Cadastro</a>'\r\n\t menu3[20]='<a href=\"/alunos/servicos/biblioteca/\" class=dropmenul target=_self>Biblioteca</a>'\r\n\t menu3[21]='<a href=\"/alunos/servicos/requerimentos/\" class=dropmenul target=_self>Solicita\xE7\xE3o de Requerimentos</a>'\r\n\t menu3[22]='<a href=\"/alunos/servicos/matricula/\" class=dropmenul target=_self>Matr\xEDcula On-line</a>'\t\t\t\r\n\t menu3[23]='<div class=dropmenu style=\"width:100%\">&nbsp;<b>Contato</b></div>'\r\n\t menu3[24]='<a href=\"/alunos/contato/central/\" class=dropmenul target=_self>Central de Atendimento</a>'\t\t\t\t\r\n\t\t\t\t menu3[25]='<a href=\"/alunos/servicos/coordenador/\" class=dropmenul target=_self>Fale com seu coordenador</a>'\r\n\t\t\t\t\t\t\t\r\n\t\r\n\t // Financeiro\r\n\t var menu4=new Array()\r\n\t menu4[0]='<div class=dropmenu style=\"width:100%\">&nbsp;<b>Informa\xE7\xF5es</b></div>'\r\n\t menu4[1]='<a href=\"/alunos/financeiro/apresentacao/\" class=dropmenul target=_self>Apresenta\xE7\xE3o</a>'\r\n\t menu4[2]='<a href=\"/alunos/financeiro/duvidas/\" class=dropmenul target=_self>D\xFAvidas Freq\xFCentes</a>'\r\n\t menu4[3]='<div class=dropmenu style=\"width:100%\">&nbsp;<b>Consultas</b></div>'\r\n\t menu4[4]='<a href=\"/alunos/financeiro/dados/\" class=dropmenul target=_self>Dados Financeiros</a>'\r\n\t menu4[5]='<a href=\"/alunos/financeiro/mensalidades/\" class=dropmenul target=_self>Mensalidades Atrasadas</a>'\r\n\t menu4[6]='<div class=dropmenu style=\"width:100%\">&nbsp;<b>Servi\xE7os</b></div>'\r\n\t menu4[7]='<a href=\"/alunos/financeiro/segundavia/\" class=dropmenul target=_self>Segunda via de Carn\xEA</a>'\r\n\t menu4[8]='<div class=dropmenu style=\"width:100%\">&nbsp;<b>Contato</b></div>'\r\n\t menu4[9]='<a href=\"/alunos/contato/financeiro/\" class=dropmenul target=_self>Tesouraria</a>'\r\n\t\r\n\t // Fora de Sala\r\n\t var menu5=new Array()\r\n\t menu5[0]='<a href=\"/alunos/foradesala/vagasestagio/\" class=dropmenul target=_self>Est\xE1gios e Oportunidades</a>'\r\n\t menu5[1]='<div class=dropmenu style=\"width:100%\">&nbsp;<b>Entretenimento</b></div>'\r\n\t //menu5[2]='<a href=\"/alunos/foradesala/enquetes/\" class=dropmenul target=_self>Enquetes</a>'\r\n\t menu5[3]='<a href=\"http://www.dceuniara.com.br\" class=dropmenul target=_blank>Site DCE</a>'\r\n\t menu5[4]='<a href=\"/alunos/foradesala/calendario/\" class=dropmenul target=_self>Agenda</a>'\r\n\t menu5[5]='<div class=dropmenu style=\"width:100%\">&nbsp;<b>Setores de Apoio ao Aluno</b></div>'\r\n\t menu5[6]='<a href=\"/alunos/foradesala/relacionamento/\" class=dropmenul target=_self>Setor de Relacionamento</a>'\r\n\t menu5[7]='<a href=\"/alunos/foradesala/estagios/\" class=dropmenul target=_self>Divis\xE3o de Est\xE1gios</a>'\r\n\t menu5[8]='<a href=\"/alunos/foradesala/central/\" class=dropmenul target=_self>Central de Atendimento</a>'\r\n\t menu5[9]='<a href=\"/alunos/foradesala/biblioteca/\" class=dropmenul target=_self>Biblioteca</a>'\r\n\t\t</script>\r\n\t\t<script src=\"/templates/js/menu.js\" type=\"text/javascript\"></script>\r\n\t</head>\r\n\t<body onLoad=\"barranavegacao();\" bgcolor=\"#ffffff\" leftmargin=\"0\" topmargin=\"0\" marginwidth=\"0\" marginheight=\"0\">\r\n\t\t<div id=\"barranavegacao\"></div>\r\n\t\t<table width=\"770\" height=\"100%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t\t\t<tr>\r\n\t\t\t\t<td height=\"62\">\r\n\t\t\t\t\t<table width=\"100%\" height=\"100%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t<td width=\"25\" background=\"/templates/alunos/imagens/t1.gif\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td background=\"/templates/alunos/imagens/t2.gif\" align=\"center\">\r\n\t\t\t\t\t\t\t\t<img src=\"/templates/alunos/imagens/trans.gif\"><BR>\r\n\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t<td width=\"25\" background=\"/templates/alunos/imagens/t3.gif\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t</table>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td height=\"50\">\r\n\t\t\t\t\t<table width=\"100%\" height=\"100%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t<td width=\"25\" background=\"/templates/alunos/imagens/t1.gif\" valign=\"bottom\"><img src=\"/templates/alunos/imagens/t4.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"68\" background=\"/templates/alunos/imagens/t5.gif\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"8\"><img src=\"/templates/alunos/imagens/t21.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"111\" background=\"/templates/alunos/imagens/t22.gif\" align=\"center\">\r\n\t\t\t\t\t\t\t\t<table width=\"100%\" height=\"100%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t\t\t<td height=\"30\" colspan=\"2\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t\t\t<td align=\"center\">\r\n\t\t\t\t\t\t\t\t\t\t\t<font color=\"#FFFFFF\" size=\"1\" style=\"font:10px\"><b>UNIARA VIRTUAL</b></font>\r\n\t\t\t\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t\t\t\t<td width=\"4\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t</table>\r\n\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t<td width=\"9\"><img src=\"/templates/alunos/imagens/t23.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"8\" bgcolor=\"#5E8EA2\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td bgcolor=\"#5E8EA2\"><font color=\"#FFFFFF\" size=\"6\">ALUNO</font></td>\r\n\t\t\t\t\t\t\t<td width=\"5\"><img src=\"/templates/alunos/imagens/t8.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"134\" background=\"/templates/alunos/imagens/t9.gif\">\r\n\t\t\t\t\t\t\t\t<table width=\"100%\" height=\"50\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t\t\t<td><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t\t\t<td height=\"16\" align=\"center\">\r\n\t\t\t\t\t <table width=\"98%\" height=\"16\" border=\"0\" align=\"CENTER\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t\t\t\t\t \t<form name=\"redirect\" action=\"#\">\r\n\t\t\t\t\t <tr>\r\n\t\t\t\t\t <td align=\"center\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"tlimite\">\r\n\t\t\t\t\t\t\t\t\t\t \t\t<script>\r\n\t\t\t\t\t\t\t\t\t\t \t\t\tvar atual = 120;\r\n\t\t\t\t\t\t\t\t\t\t \t\t\tvar pagina = \"_notas.php\"; \r\n\t\t\t\t\t\t\t\t\t\t \t\t\ttempolimite();\r\n\t\t\t\t\t\t\t\t\t\t \t\t</script>\r\n\t\t\t\t\t\t\t\t\t \t\t</div>\r\n\t\t\t\t\t </td>\r\n\t\t\t\t\t </tr>\r\n\t\t\t\t\t </form>\r\n\t\t\t\t\t </table>\r\n\t\t\t\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t</table>\r\n\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t<td width=\"4\"><img src=\"/templates/alunos/imagens/t10.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"25\" background=\"/templates/alunos/imagens/t3.gif\" valign=\"bottom\"><img src=\"/templates/alunos/imagens/t6.gif\"><BR></td>\r\n\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t</table>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td height=\"46\">\r\n\t\t\t\t\t<table width=\"100%\" height=\"100%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t<td width=\"9\"><img src=\"/templates/alunos/imagens/t11.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"152\" bgcolor=\"#5E8EA2\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"51\"><img src=\"/templates/alunos/imagens/t12.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td>\r\n\t\t\t\t\t\t\t\t<table width=\"400\" height=\"18\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t\t\t<td background=\"/templates/alunos/imagens/local.jpg\">\r\n\t\t\t\t\t\t\t\t\t\t\t<font color=\"#737373\"><b>&nbsp;&nbsp;&nbsp;&nbsp;Acad\xEAmico > Consultas > Registro de Notas</b></font>\r\n\t\t\t\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t</table>\t\r\n\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t<td width=\"12\"><img src=\"/templates/alunos/imagens/t13.gif\"><BR></td>\r\n\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t</table>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td height=\"20\">\r\n\t\t\t\t\t<table width=\"100%\" height=\"100%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t<td width=\"3\" background=\"/templates/alunos/imagens/s1.gif\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"151\" bgcolor=\"#5E8EA2\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"9\"><img src=\"/templates/alunos/imagens/t14.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"49\">&nbsp;</td>\r\n\t\t\t\t\t\t\t<td width=\"4\"><img src=\"/templates/alunos/imagens/t15.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td bgcolor=\"#5E8EA2\">\r\n <table width=\"98%\" height=\"100%\" border=\"0\" align=\"CENTER\" cellpadding=\"0\" cellspacing=\"0\">\r\n <tr>\r\n <td align=\"left\">\r\n \t<font color=\"#FFFFFF\">\r\n \t<b>Boa Noite, GUILHERME FRANGIOTTI PIRES</b>\r\n </font>\r\n </td>\r\n <td width=\"110\" align=\"right\">\r\n <font color=\"#FFFFFF\" size=\"2\">\r\n \t\t<b>|</b>\r\n \t</font>\r\n \t<font color=\"#FFFFFF\" size=\"1\">\r\n \t &nbsp;\r\n \t\t<b>Acesso n\xBA 996</b>\r\n \t</font>\r\n </td>\r\n <td width=\"5\">\r\n \t<img src=\"/templates/alunos/imagens/trans.gif\"><BR>\r\n </td>\r\n </tr>\r\n </table>\r\n\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t<td width=\"51\"><a href=\"/login/\"><img src=\"/templates/alunos/imagens/sair.gif\"></a><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"3\" background=\"/templates/alunos/imagens/s2.gif\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t</table>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td height=\"22\">\r\n\t\t\t\t\t<table width=\"100%\" height=\"100%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t<td width=\"3\" background=\"/templates/alunos/imagens/s1.gif\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"150\" bgcolor=\"#5E8EA2\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"8\"><img src=\"/templates/alunos/imagens/t16.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"1\" bgcolor=\"#929292\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"3\" background=\"/templates/alunos/imagens/s2.gif\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t</table>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td height=\"26\">\r\n\t\t\t\t\t<table width=\"100%\" height=\"26\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t<td width=\"3\" background=\"/templates/alunos/imagens/s1.gif\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"150\" bgcolor=\"#47778B\" align=\"center\"><a href=\"/alunos/index/\" class=\"menu\">home</a></td>\r\n\t\t\t\t\t\t\t<td bgcolor=\"#B1B1B1\">\r\n\t\t <table height=\"26\" border=\"0\" align=\"CENTER\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t\t <tr>\r\n\t\t \r\n \r\n \r\n <td width=\"103\" align=\"center\"><a href=# class=\"menu\" onMouseOver=\"return dropdownmenu(this, event, menu1, '150px')\" onMouseout=\"delayhidemenu()\">institucional</a><BR></td>\r\n\t\t <td width=\"22\" align=\"center\"><font size=\"2\" color=\"#ffffff\"><b>|</b></font><BR></td>\r\n\t\t <td width=\"103\" align=\"center\"><a href=# class=\"menu\" onMouseOver=\"return dropdownmenu(this, event, menu2, '150px')\" onMouseout=\"delayhidemenu()\">uniara virtual</a><BR></td>\r\n\t\t <td width=\"22\" align=\"center\"><font size=\"2\" color=\"#ffffff\"><b>|</b></font><BR></td>\r\n\t\t <td width=\"103\" align=\"center\"><a href=# class=\"menu\" onMouseOver=\"return dropdownmenu(this, event, menu3, '203px')\" onMouseout=\"delayhidemenu()\">acad\xEAmico</a><BR></td>\r\n\t\t <td width=\"22\" align=\"center\"><font size=\"2\" color=\"#ffffff\"><b>|</b></font><BR></td>\r\n\t\t <td width=\"103\" align=\"center\"><a href=# class=\"menu\" onMouseOver=\"return dropdownmenu(this, event, menu4, '150px')\" onMouseout=\"delayhidemenu()\">financeiro</a><BR></td>\r\n\t\t <td width=\"22\" align=\"center\"><font size=\"2\" color=\"#ffffff\"><b>|</b></font><BR></td>\r\n\t\t <td width=\"103\" align=\"center\"><a href=# class=\"menu\" onMouseOver=\"return dropdownmenu(this, event, menu5, '170px')\" onMouseout=\"delayhidemenu()\">fora de sala</a><BR></td>\r\n\t\t </tr>\r\n\t\t </table>\r\n\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t<td width=\"1\" bgcolor=\"#929292\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"3\" background=\"/templates/alunos/imagens/s2.gif\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t</table>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td valign=\"top\">\r\n \t\t<!-- Centro da P\xE1gina -->\r\n\t\t\t\t\t<table width=\"100%\" height=\"100%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t<td width=\"3\" background=\"/templates/alunos/imagens/s1.gif\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"1\" bgcolor=\"#929292\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td valign=\"top\">\r\n\t\t\t\t\t\t\t\t<table width=\"96%\" align=\"center\">\r\n\t\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t\t\t<td valign=\"top\">\r\n<BR>\r\n<div id=\"limite\"></div>\r\n<div id='conteudo'></div> <table width=\"99%\" border=\"0\" align=\"center\" cellpadding=\"3\" cellspacing=\"1\" bgcolor=\"#000000\">\r\n\t\t\t\t<tr bgcolor=\"#9999CC\"> \r\n\t\t\t\t\t\t<td bgcolor=\"#47778b\"><b>Disciplina</b></td>\r\n\t\t\t\t\t\t<td valign=\"top\" align=\"center\" bgcolor=\"#47778b\"><b>1\xBA bim.</b></td>\r\n\t\t\t\t\t\t<td valign=\"top\" align=\"center\" bgcolor=\"#47778b\"><b>2\xBA bim.</b></td>\r\n\t\t\t\t\t\t<td valign=\"top\" align=\"center\" bgcolor=\"#47778b\"><b>3\xBA bim.</b></td>\r\n\t\t\t\t\t\t<td valign=\"top\" align=\"center\" bgcolor=\"#47778b\"><b>4\xBA bim.</b></td>\r\n\t\t\t\t\t\t<td valign=\"top\" align=\"center\" bgcolor=\"#47778b\"><b>Sub.</b></td>\r\n\t\t\t\t\t\t<td valign=\"top\" align=\"center\" bgcolor=\"#47778b\"><b>M\xE9dia</b></td>\r\n\t\t\t\t\t\t<td valign=\"top\" align=\"center\" bgcolor=\"#47778b\"><b>Ciclo Rec.</b></td>\r\n\t\t\t\t\t\t<td valign=\"top\" align=\"center\" bgcolor=\"#47778b\"><b>Situa\xE7\xE3o</b></td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t\r\n\t\t\t\t\t<tr bgcolor=#FFFFFF>\r\n\t\t\t\t\t\t<td>ADMINISTRAÇÃO E ECONOMIA</td>\r\n\t\t\t\t\t\t<td align=\"center\">N.C.</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">CRS</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t\r\n\t\t\t\t\t<tr bgcolor=#bdd6e0>\r\n\t\t\t\t\t\t<td>COMPILADORES</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">CRS</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t\r\n\t\t\t\t\t<tr bgcolor=#FFFFFF>\r\n\t\t\t\t\t\t<td>ESTÁGIO SUPERVISIONADO</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">CRS</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t\r\n\t\t\t\t\t<tr bgcolor=#bdd6e0>\r\n\t\t\t\t\t\t<td>GERENCIAMENTO DE PROJETOS E SISTEMAS</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">CRS</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t\r\n\t\t\t\t\t<tr bgcolor=#FFFFFF>\r\n\t\t\t\t\t\t<td>INTELIGENCIA ARTIFICIAL</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">CRS</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t\r\n\t\t\t\t\t<tr bgcolor=#bdd6e0>\r\n\t\t\t\t\t\t<td>METODOLOGIA CIENTÍFICA E TECNOLÓGICA</td>\r\n\t\t\t\t\t\t<td align=\"center\">N.C.</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">CRS</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t\r\n\t\t\t\t\t<tr bgcolor=#FFFFFF>\r\n\t\t\t\t\t\t<td>PERIFÉRICOS E INTERFACES</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">CRS</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t\r\n\t\t\t\t\t<tr bgcolor=#bdd6e0>\r\n\t\t\t\t\t\t<td>PROCESSAMENTO GRÁFICO E DE IMAGENS</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">CRS</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t\r\n\t\t\t\t\t<tr bgcolor=#FFFFFF>\r\n\t\t\t\t\t\t<td>PROJETO E ANÁLISE DE ALGORITMOS</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">CRS</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t\r\n\t\t\t\t\t<tr bgcolor=#bdd6e0>\r\n\t\t\t\t\t\t<td>ROBÓTICA E AUTOMAÇÃO INDUSTRIAL</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">CRS</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t\r\n\t\t\t\t\t<tr bgcolor=#FFFFFF>\r\n\t\t\t\t\t\t<td>SISTEMAS DISTRIBUÍDOS E PROGRAMAÇÃO CONCORRENTE</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">CRS</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t\r\n\t\t\t\t\t<tr bgcolor=#bdd6e0>\r\n\t\t\t\t\t\t<td>SISTEMAS EMBARCADOS MICROPROCESSADOS</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">CRS</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t\r\n\t\t\t\t\t<tr bgcolor=#FFFFFF>\r\n\t\t\t\t\t\t<td>TÓPICOS EM ENGENHARIA DE COMPUTAÇÃO</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">CRS</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t\r\n\t\t\t\t\t<tr bgcolor=#bdd6e0>\r\n\t\t\t\t\t\t<td>TRABALHO DE CONCLUSÃO DE CURSO</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">--</td>\r\n\t\t\t\t\t\t<td align=\"center\">CRS</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t\r\n\t\t\t</table>\r\n\t\t\t<BR>\r\n\t\t \t<center>Acesse <b>\"<a href=\"/alunos/consultas/historico/\">Hist\xF3rico Escolar</a>\"</b> para consultar disciplinas j\xE1 encerradas.</center>\r\n\t\t \r\n\t\t <BR><BR>\r\n\t\t \r\n\t\t <strong>Legenda Coluna Situa\xE7\xE3o:</strong><br />\r\n\t\t Situa\xE7\xE3o CRS = Cursando;<br />\r\n\t\t Situa\xE7\xE3o CRN = Ciclo de Recupera\xE7\xE3o por Nota;<br />\r\n\t\t Situa\xE7\xE3o CRF = Ciclo de Recupera\xE7\xE3o por Falta;<br /><BR>\r\n\t\t \r\n\t\t <strong>Importante:</strong><br /><BR>\r\n\t\t 1. Informamos que os professores respons\xE1veis pelas disciplinas devem encaminhar as notas para Secretaria eletronicamente, portanto quaisquer d\xFAvidas em rela\xE7\xE3o \xE0s notas lan\xE7adas no sistema devem ser tratadas diretamente com o professor.<BR><BR>\r\n\t\t\t2. A responsabilidade do cumprimento dos prazos de encaminhamento das notas para a Secretaria fica a cargo da coordena\xE7\xE3o de cada curso.<BR><BR>\r\n\t\t\t3. As notas s\xE3o disponibilizadas automaticamente na UNIARA Virtual em at\xE9 24 horas ap\xF3s seu envio.<BR>\r\n\t\t\t<BR>\r\n\t\t\t<div id=\"limite2\"></div>\t\t\t\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t</table>\r\n\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t<td width=\"1\" bgcolor=\"#929292\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"3\" background=\"/templates/alunos/imagens/s2.gif\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t</table> \t\t\t\t<!-- Fim Centro da P\xE1gina -->\r\n\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td height=\"20\">\r\n\t\t\t\t\t<table width=\"100%\" height=\"100%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t<td width=\"3\" background=\"/templates/alunos/imagens/s1.gif\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"1\" bgcolor=\"#929292\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"1\" bgcolor=\"#929292\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"3\" background=\"/templates/alunos/imagens/s2.gif\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t</table>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td height=\"1\">\r\n\t\t\t\t\t<table width=\"100%\" height=\"100%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t<td width=\"3\" background=\"/templates/alunos/imagens/s1.gif\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"2\" bgcolor=\"#929292\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td bgcolor=\"#000000\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"2\" bgcolor=\"#929292\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"3\" background=\"/templates/alunos/imagens/s2.gif\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t</table>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td height=\"84\">\r\n\t\t\t\t\t<table width=\"100%\" height=\"100%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">\r\n\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t<td width=\"109\"><img src=\"/templates/alunos/imagens/t18.jpg\"><BR></td>\r\n\t\t\t\t\t\t\t<td width=\"20\" background=\"/templates/alunos/imagens/t19.jpg\"><img src=\"/templates/alunos/imagens/trans.gif\"><BR></td>\r\n\t\t\t\t\t\t\t<td background=\"/templates/alunos/imagens/t19.jpg\">\r\n\t\t\t\t\t\t\t\t<font face=\"verdana\" size=\"1\" color=\"#4c4c4c\">\r\n\t\t\t\t\t\t\t\t\t<BR>\r\n\t\t\t\t\t\t\t\t\t<B>Copyright \xA9 2015 Centro Universit\xE1rio de Araraquara - UNIARA.</B><BR>\r\n\t\t\t\t\t\t\t\t\tTodos os direitos reservados - UV.2.1-WV - NOTAS-2.0-BETA-1-WV.<BR><BR>&nbsp;\r\n\t\t\t\t\t\t\t\t</font>\r\n\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t<td width=\"15\"><img src=\"/templates/alunos/imagens/t20.jpg\"><BR></td>\r\n\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t</table>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td height=\"5\">\r\n\t\t\t\t\t<img src=\"/templates/alunos/imagens/trans.gif\"><BR>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t</body>\r\n</html>\r\n<script type=\"text/javascript\">\r\n\r\n var _gaq = _gaq || [];\r\n _gaq.push(['_setAccount', 'UA-27812250-1']);\r\n _gaq.push(['_setDomainName', 'uniara.com.br']);\r\n _gaq.push(['_trackPageview']);\r\n\r\n (function() {\r\n var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;\r\n ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';\r\n var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\r\n })();\r\n\r\n</script>\r\n
@@ -0,0 +1,14 @@
1
+ require 'rspec'
2
+ require 'webmock/rspec'
3
+ require 'simplecov'
4
+ require 'support/fixture_helper'
5
+
6
+ SimpleCov.start do
7
+ add_filter '/spec/'
8
+ end
9
+
10
+ RSpec.configure do |config|
11
+ config.include FixtureHelper
12
+ end
13
+
14
+ require 'uniara_virtual_parser'
@@ -0,0 +1,5 @@
1
+ module FixtureHelper
2
+ def uniara_virtual_fixture(filename)
3
+ File.open("./spec/fixtures/uniara_virtual/#{filename}")
4
+ end
5
+ end
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+
3
+ module UniaraVirtualParser
4
+ describe Client do
5
+ after :each do
6
+ described_class.instance_variable_set :@client, nil
7
+ end
8
+
9
+ let(:client) { double(:client, post: true) }
10
+
11
+ describe '.client' do
12
+ it 'create only one hurley_client object' do
13
+ expect(Hurley::Client).to receive(:new).once { client }
14
+ described_class.post '/batman'
15
+ described_class.post '/batman'
16
+ end
17
+ end
18
+
19
+ describe '.post' do
20
+ it 'calls hurley_client and send the post' do
21
+ expect(client).to receive(:post).with('/batman')
22
+ allow(Hurley::Client).to receive(:new) { client }
23
+ described_class.post '/batman'
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ module UniaraVirtualParser
4
+ module Services
5
+ describe Grades do
6
+ describe '.grades' do
7
+ it 'fetch the content of uniara virtual and bring the array with grades' do
8
+ stub_request(:get, "http://virtual.uniara.com.br/alunos/consultas/notas/").
9
+ to_return(:status => 200, body: uniara_virtual_fixture("grades.html").read, headers: {})
10
+ grades = described_class.grades
11
+ expect(grades.first.name).to eq "ADMINISTRAÇÃO E ECONOMIA"
12
+ expect(grades.length).to eq 14
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,52 @@
1
+ require 'spec_helper'
2
+
3
+ module UniaraVirtualParser
4
+ module Services
5
+ describe Login do
6
+ let(:body) do
7
+ { 'senha' => 'wayne', 'username' => 'bruce' }
8
+ end
9
+
10
+ context 'with a valid login' do
11
+ let(:response_headers) do
12
+ {
13
+ 'Set-Cookie' => 'PHPSESSID=64sbv9srm10tove94kn7nutfb2;'\
14
+ 'path=/, UVXS233E3=N; expires=Wed, 20-May-2015 02:32:01 GMT,'\
15
+ 'tipoAcesso=virtual; expires=Thu, 21-May-2015 04:32:01 GMT;'\
16
+ 'path=/; domain=.uniara.com.br, UVXS233E3=S;'\
17
+ 'expires=Wed, 20-May-2015 05:32:01 GMT; path=/'
18
+ }
19
+ end
20
+
21
+ it 'sets the token in the Client' do
22
+ stub_request(:post, 'http://virtual.uniara.com.br/login')
23
+ .with(body: body)
24
+ .to_return(status: 200, body: '', headers: response_headers)
25
+
26
+ expect { described_class.login 'bruce', 'wayne' }
27
+ .to change(Client, :token)
28
+ end
29
+ end
30
+
31
+ context 'with an invalid login' do
32
+ let(:response_headers) do
33
+ {
34
+ 'Set-Cookie' => 'PHPSESSID=64sbv9srm10tove94kn7nutfb2;'\
35
+ 'path=/, UVXS233E3=N; expires=Wed, 20-May-2015 02:32:01 GMT,'\
36
+ 'tipoAcesso=virtual; expires=Thu, 21-May-2015 04:32:01 GMT;'\
37
+ 'path=/; domain=.uniara.com.br,'\
38
+ 'expires=Wed, 20-May-2015 05:32:01 GMT; path=/'
39
+ }
40
+ end
41
+ it 'raises InvalidLogin error' do
42
+ stub_request(:post, 'http://virtual.uniara.com.br/login')
43
+ .with(body: body)
44
+ .to_return(status: 200, body: '', headers: response_headers)
45
+
46
+ expect { described_class.login 'bruce', 'wayne' }
47
+ .to raise_error(UniaraVirtualParser::InvalidLogin)
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,28 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'uniara_virtual_parser/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'uniara_virtual_parser'
8
+ spec.version = UniaraVirtualParser::VERSION
9
+ spec.authors = ['Carlos Ribeiro']
10
+ spec.email = ['mail@carlosribeiro.me']
11
+ spec.summary = 'A Gem to parse the Uniara Virtual system'
12
+ spec.description = spec.summary
13
+ spec.homepage = ''
14
+ spec.license = 'MIT'
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ['lib']
20
+
21
+ spec.add_dependency 'hurley', '~> 0.1'
22
+ spec.add_dependency 'nokogiri', '~> 1.6.6.2'
23
+ spec.add_development_dependency 'bundler', '~> 1.7'
24
+ spec.add_development_dependency 'rake', '~> 10.0'
25
+ spec.add_development_dependency 'rspec', '~> 3.2.0'
26
+ spec.add_development_dependency 'simplecov', '~> 0.10.0'
27
+ spec.add_development_dependency 'webmock', '~> 1.21.0'
28
+ end
metadata ADDED
@@ -0,0 +1,171 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: uniara_virtual_parser
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Carlos Ribeiro
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-05-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: hurley
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: nokogiri
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 1.6.6.2
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 1.6.6.2
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.7'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.7'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '10.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '10.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 3.2.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 3.2.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: simplecov
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.10.0
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 0.10.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: webmock
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 1.21.0
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 1.21.0
111
+ description: A Gem to parse the Uniara Virtual system
112
+ email:
113
+ - mail@carlosribeiro.me
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - ".gitignore"
119
+ - ".rspec"
120
+ - ".rubocop.yml"
121
+ - ".ruby-gemset"
122
+ - ".ruby-version"
123
+ - ".travis.yml"
124
+ - Gemfile
125
+ - LICENSE.txt
126
+ - README.md
127
+ - Rakefile
128
+ - lib/uniara_virtual_parser.rb
129
+ - lib/uniara_virtual_parser/client.rb
130
+ - lib/uniara_virtual_parser/models/subject.rb
131
+ - lib/uniara_virtual_parser/services/grades.rb
132
+ - lib/uniara_virtual_parser/services/login.rb
133
+ - lib/uniara_virtual_parser/version.rb
134
+ - spec/fixtures/uniara_virtual/grades.html
135
+ - spec/spec_helper.rb
136
+ - spec/support/fixture_helper.rb
137
+ - spec/uniara_virtual_parser/client_spec.rb
138
+ - spec/uniara_virtual_parser/services/grades_spec.rb
139
+ - spec/uniara_virtual_parser/services/login_spec.rb
140
+ - uniara_virtual_parser.gemspec
141
+ homepage: ''
142
+ licenses:
143
+ - MIT
144
+ metadata: {}
145
+ post_install_message:
146
+ rdoc_options: []
147
+ require_paths:
148
+ - lib
149
+ required_ruby_version: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ required_rubygems_version: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ requirements: []
160
+ rubyforge_project:
161
+ rubygems_version: 2.4.3
162
+ signing_key:
163
+ specification_version: 4
164
+ summary: A Gem to parse the Uniara Virtual system
165
+ test_files:
166
+ - spec/fixtures/uniara_virtual/grades.html
167
+ - spec/spec_helper.rb
168
+ - spec/support/fixture_helper.rb
169
+ - spec/uniara_virtual_parser/client_spec.rb
170
+ - spec/uniara_virtual_parser/services/grades_spec.rb
171
+ - spec/uniara_virtual_parser/services/login_spec.rb