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