class EnemSolicitacao::Session

Representa uma sessão com o sistema do Inep. Precisa de um login e senha para autenticação, procedimento que só é executado quando uma busca é realizada.

Public Class Methods

new(login, password) click to toggle source
# File lib/enem_solicitacao/session.rb, line 6
def initialize(login, password)
  @login    = login
  @password = password
  @agent    = Mechanize.new
  @agent.user_agent_alias = 'Linux Firefox'
end

Public Instance Methods

agent() click to toggle source

Retorna um ‘agent` (objeto `Mechanize`). Autentica o usuário, caso ainda não esteja autenticado.

# File lib/enem_solicitacao/session.rb, line 15
def agent
  establish unless established?
  @agent
end

Private Instance Methods

establish(login = @login, password = @password) click to toggle source

Faz a autenticação. Se ela não obtiver sucesso, uma exceção será disparada.

# File lib/enem_solicitacao/session.rb, line 32
def establish(login = @login, password = @password)
  login_page    = @agent.get(login_url)
  form          = login_page.form_with(id: 'formLogin')
  form.username = login
  form.password = password
  form['j_id19.x'] = 1
  form['j_id19.y'] = 1
  home_page     = @agent.submit(form)
  raise "Unable to authenticate #{login}" unless home_page.body['inicial']
  @status = :established
end