module Aries::Scraper

Public Class Methods

get(params) click to toggle source
# File lib/aries/scraper.rb, line 15
def get(params)
  perform_request do
    parse_response(RestClient.get(url_for(params)))
  end
end
post(params, form_data = {}) click to toggle source
# File lib/aries/scraper.rb, line 21
def post(params, form_data = {})
  perform_request do
    parse_response(RestClient.post(url_for(params), form_data))
  end
end
raw(params) click to toggle source
# File lib/aries/scraper.rb, line 27
def raw(params)
  perform_request do
    RestClient.get(url_for(params))
  end
end
url_for(params = {}) click to toggle source
# File lib/aries/scraper.rb, line 9
def url_for(params = {})
  url = URI.parse('https://aries.elluel.net/')
  url.query = URI.encode_www_form(params) if params
  url.to_s
end

Private Class Methods

parse_response(response_body) click to toggle source
# File lib/aries/scraper.rb, line 41
def parse_response(response_body)
  characters = []

  table = Nokogiri::HTML(response_body).at('table').search('tr')
  table.drop(1).each do |tr|
    cells = tr.search('th', 'td')
    characters << {
      id:      cells[0].text.to_i,
      name:    cells[1].text,
      job:     cells[2].text.strip,
      level:   cells[3].children[0].text.to_i,
      paragon: cells[4].children[0].text.to_i,
      fame:    cells[5].text.to_i
    }
  end

  if characters.empty?
    raise Aries::Exception::NotFoundError,
          'No character was found'
  end

  characters
end
perform_request() { || ... } click to toggle source
# File lib/aries/scraper.rb, line 35
def perform_request
  yield
rescue RestClient::Exception => e
  raise Aries::Exception::Scraper, e.message
end