class BattingLeaders::Player

Constants

PlayerDetails

Attributes

batting_ave[RW]
name[RW]
url[RW]

Public Class Methods

all() click to toggle source
# File lib/batting_leaders/player.rb, line 30
def self.all
  @@all
end
batting_leaders() click to toggle source
# File lib/batting_leaders/player.rb, line 38
  def self.batting_leaders
#    oddEven =="odd" ? odd_or_even_row = "oddrow" : odd_or_even_row = "evenrow"
    current_year = Date.today.year
    get_page = Nokogiri::HTML(open"http://espn.go.com/mlb/stats/batting/_/#{current_year}/2016/seasontype/2")
    get_page.css("tr.oddrow,.evenrow").collect do |player|
      player_attributes = {:name => player.css("a").text,
                           :url => player.css("a").attribute("href").value,
                           :batting_ave => player.css(".sortcell").text}
      player = self.new(player_attributes)
    end
  end
find_player_by_url(player_url) click to toggle source
# File lib/batting_leaders/player.rb, line 50
def self.find_player_by_url(player_url)
  @@all.detect{|player| player.url == player_url}
end
new(player_hash) click to toggle source
# File lib/batting_leaders/player.rb, line 23
def initialize(player_hash)
  @name = player_hash[:name]
  @batting_ave = player_hash[:batting_ave]
  @url = player_hash[:url]
  @@all << self
end
sorted_batters() click to toggle source
# File lib/batting_leaders/player.rb, line 34
def self.sorted_batters
  self.batting_leaders.sort {|player, player2| player2.batting_ave <=> player.batting_ave} #sort by attribute (batting_ave) of Player's instance
end

Public Instance Methods

doc() click to toggle source
# File lib/batting_leaders/player.rb, line 54
def doc
  @doc ||= Nokogiri::HTML(open"#{@url}").css(".mod-content")
end
other_details() click to toggle source
# File lib/batting_leaders/player.rb, line 58
def other_details
  player_detail_hash = {}
  PlayerDetails.each do |attribute, values|  #values = ["css selector", index, "erased text using gsub" ]
    player_detail_hash[attribute] ||= doc.css(values[0])[values[1]].text.gsub(values[2], "")
  end
  player_detail_hash
end