class Soccerwiki::Player

Attributes

club[R]
full_name[R]
id[R]
nationality[R]
picture[R]
position[R]
rating[R]

Public Class Methods

find_by_id(player_id) click to toggle source
# File lib/soccerwiki/player.rb, line 19
def self.find_by_id(player_id)
  req = self.get("/player.php", query: {pid: player_id})
  if req.code.to_i == 404
    raise(Soccerwiki::Exceptions::NotFound, "Could not find player with id='#{player_id}'")
  elsif req.code.to_i == 200
    html_doc = Nokogiri::HTML(req.parsed_response)
    
    headers = html_doc.xpath("//table[@id='realLifeTable']//tr//th").collect(&:text)
    values = html_doc.xpath("//table[@id='realLifeTable']//tr//td").collect(&:text)

    player_data = Hash[headers.zip(values)]

    player_name = player_data["Full Name"]
    player_picture = html_doc.xpath('//div[@id="ppdiv"]/img').first["src"]
    player_rating = html_doc.xpath('//div[@id="smratingdiv"]/font/b').first.text
    player_club = player_data["Club"]
    player_nationality = player_data["Nation"].gsub(" ", '').slice!(0)
    player_position = player_data["Position"]
    
    # player_positions_short = html_doc.xpath('//table[@id="realLifeTable"]//tr[8]//td//acronym').first.text
    self.new(player_id, player_name, player_picture, player_rating, player_club, player_nationality, player_position)
  end
end
new(id, name, picture, rating, club, nationality, position) click to toggle source
# File lib/soccerwiki/player.rb, line 9
def initialize(id, name, picture, rating, club, nationality, position)
  @id = id
  @full_name = name
  @picture = picture
  @rating = rating.to_i
  @club = club
  @nationality = nationality
  @position = position
end