Class: Player
- Inherits:
-
Object
- Object
- Player
- Defined in:
- lib/player.rb
Overview
This class represents a single MLB player from a single MLB game
Instance Attribute Summary collapse
-
#appearances ⇒ Object
object pointers.
-
#avg ⇒ Object
Returns the value of attribute avg.
-
#bat_order ⇒ Object
attributes from players.xml.
-
#bats ⇒ Object
attributes from batters/13353333.xml or pitchers/1222112.xml.
-
#boxname ⇒ Object
attributes from players.xml.
-
#dob ⇒ Object
attributes from batters/13353333.xml or pitchers/1222112.xml.
-
#era ⇒ Object
Returns the value of attribute era.
-
#first ⇒ Object
attributes from players.xml.
-
#game_position ⇒ Object
attributes from players.xml.
-
#games ⇒ Object
object pointers.
-
#gid ⇒ Object
attributes from players.xml.
-
#height ⇒ Object
attributes from batters/13353333.xml or pitchers/1222112.xml.
-
#hr ⇒ Object
Returns the value of attribute hr.
-
#last ⇒ Object
attributes from players.xml.
-
#losses ⇒ Object
Returns the value of attribute losses.
-
#num ⇒ Object
attributes from players.xml.
-
#pid ⇒ Object
attributes from players.xml.
-
#position ⇒ Object
attributes from players.xml.
-
#rbi ⇒ Object
Returns the value of attribute rbi.
-
#rl ⇒ Object
attributes from players.xml.
-
#saves ⇒ Object
Returns the value of attribute saves.
-
#status ⇒ Object
attributes from players.xml.
-
#std_hr ⇒ Object
Returns the value of attribute std_hr.
-
#team_abbrev ⇒ Object
attributes from batters/13353333.xml or pitchers/1222112.xml.
-
#team_code ⇒ Object
Returns the value of attribute team_code.
-
#team_obj ⇒ Object
object pointers.
-
#throws ⇒ Object
attributes from batters/13353333.xml or pitchers/1222112.xml.
-
#type ⇒ Object
attributes from batters/13353333.xml or pitchers/1222112.xml.
-
#weight ⇒ Object
attributes from batters/13353333.xml or pitchers/1222112.xml.
-
#wins ⇒ Object
Returns the value of attribute wins.
Instance Method Summary collapse
-
#at_bats_count ⇒ Object
Returns the number of at bats over the entire season for this player.
-
#get_all_appearances(year) ⇒ Object
Returns an array of all the appearances (Batting or Pitching) made by this player for the season specified.
-
#get_games_for_season(year) ⇒ Object
Returns an array of all the games for the team this player is on for the season specified currently will not handle a player who has played for multiple teams over a season.
-
#get_team ⇒ Object
Returns the Team object representing the team for which this player plays.
-
#init(element, gid) ⇒ Object
Initialize a player object by reading data from the players.xml file.
-
#init_pitcher_from_scoreboard(element) ⇒ Object
Initializes pitcher info from data read from the masterscoreboard.xml file.
-
#load_from_id(gid, pid) ⇒ Object
Initializes a Player object by reading the player data from the players.xml file for the player specified by game id and player id.
Instance Attribute Details
#appearances ⇒ Object
object pointers
14 15 16 |
# File 'lib/player.rb', line 14 def appearances @appearances end |
#avg ⇒ Object
Returns the value of attribute avg.
8 9 10 |
# File 'lib/player.rb', line 8 def avg @avg end |
#bat_order ⇒ Object
attributes from players.xml
7 8 9 |
# File 'lib/player.rb', line 7 def bat_order @bat_order end |
#bats ⇒ Object
attributes from batters/13353333.xml or pitchers/1222112.xml
11 12 13 |
# File 'lib/player.rb', line 11 def bats @bats end |
#boxname ⇒ Object
attributes from players.xml
7 8 9 |
# File 'lib/player.rb', line 7 def boxname @boxname end |
#dob ⇒ Object
attributes from batters/13353333.xml or pitchers/1222112.xml
11 12 13 |
# File 'lib/player.rb', line 11 def dob @dob end |
#era ⇒ Object
Returns the value of attribute era.
8 9 10 |
# File 'lib/player.rb', line 8 def era @era end |
#first ⇒ Object
attributes from players.xml
7 8 9 |
# File 'lib/player.rb', line 7 def first @first end |
#game_position ⇒ Object
attributes from players.xml
7 8 9 |
# File 'lib/player.rb', line 7 def game_position @game_position end |
#games ⇒ Object
object pointers
14 15 16 |
# File 'lib/player.rb', line 14 def games @games end |
#gid ⇒ Object
attributes from players.xml
7 8 9 |
# File 'lib/player.rb', line 7 def gid @gid end |
#height ⇒ Object
attributes from batters/13353333.xml or pitchers/1222112.xml
11 12 13 |
# File 'lib/player.rb', line 11 def height @height end |
#hr ⇒ Object
Returns the value of attribute hr.
8 9 10 |
# File 'lib/player.rb', line 8 def hr @hr end |
#last ⇒ Object
attributes from players.xml
7 8 9 |
# File 'lib/player.rb', line 7 def last @last end |
#losses ⇒ Object
Returns the value of attribute losses.
8 9 10 |
# File 'lib/player.rb', line 8 def losses @losses end |
#num ⇒ Object
attributes from players.xml
7 8 9 |
# File 'lib/player.rb', line 7 def num @num end |
#pid ⇒ Object
attributes from players.xml
7 8 9 |
# File 'lib/player.rb', line 7 def pid @pid end |
#position ⇒ Object
attributes from players.xml
7 8 9 |
# File 'lib/player.rb', line 7 def position @position end |
#rbi ⇒ Object
Returns the value of attribute rbi.
8 9 10 |
# File 'lib/player.rb', line 8 def rbi @rbi end |
#rl ⇒ Object
attributes from players.xml
7 8 9 |
# File 'lib/player.rb', line 7 def rl @rl end |
#saves ⇒ Object
Returns the value of attribute saves.
8 9 10 |
# File 'lib/player.rb', line 8 def saves @saves end |
#status ⇒ Object
attributes from players.xml
7 8 9 |
# File 'lib/player.rb', line 7 def status @status end |
#std_hr ⇒ Object
Returns the value of attribute std_hr.
8 9 10 |
# File 'lib/player.rb', line 8 def std_hr @std_hr end |
#team_abbrev ⇒ Object
attributes from batters/13353333.xml or pitchers/1222112.xml
11 12 13 |
# File 'lib/player.rb', line 11 def team_abbrev @team_abbrev end |
#team_code ⇒ Object
Returns the value of attribute team_code.
8 9 10 |
# File 'lib/player.rb', line 8 def team_code @team_code end |
#team_obj ⇒ Object
object pointers
14 15 16 |
# File 'lib/player.rb', line 14 def team_obj @team_obj end |
#throws ⇒ Object
attributes from batters/13353333.xml or pitchers/1222112.xml
11 12 13 |
# File 'lib/player.rb', line 11 def throws @throws end |
#type ⇒ Object
attributes from batters/13353333.xml or pitchers/1222112.xml
11 12 13 |
# File 'lib/player.rb', line 11 def type @type end |
#weight ⇒ Object
attributes from batters/13353333.xml or pitchers/1222112.xml
11 12 13 |
# File 'lib/player.rb', line 11 def weight @weight end |
#wins ⇒ Object
Returns the value of attribute wins.
8 9 10 |
# File 'lib/player.rb', line 8 def wins @wins end |
Instance Method Details
#at_bats_count ⇒ Object
Returns the number of at bats over the entire season for this player
67 68 69 70 71 |
# File 'lib/player.rb', line 67 def at_bats_count gameday_info = GamedayUtil.parse_gameday_id(@gid) appearances = get_all_appearances(gameday_info["year"]) count = appearances.inject(0) {|sum, a| sum + a.ab.to_i } end |
#get_all_appearances(year) ⇒ Object
Returns an array of all the appearances (Batting or Pitching) made by this player for the season specified.
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/player.rb', line 42 def get_all_appearances(year) if !@appearances @appearances = [] all_appearances = [] games = get_games_for_season(year) games.each do |game| @team_abbrev == game.home_team_abbrev ? status = 'home' : status = 'away' if @position == 'P' all_appearances.push *(game.get_pitchers(status)) else all_appearances.push *(game.get_batters(status)) end end # now go through all appearances to find those for this player all_appearances.each do |appearance| if appearance.pid == @pid @appearances << appearance end end end @appearances end |
#get_games_for_season(year) ⇒ Object
Returns an array of all the games for the team this player is on for the season specified currently will not handle a player who has played for multiple teams over a season
85 86 87 88 89 90 |
# File 'lib/player.rb', line 85 def get_games_for_season(year) if !@games @games = get_team.all_games(year) end @games end |
#get_team ⇒ Object
Returns the Team object representing the team for which this player plays
75 76 77 78 79 80 |
# File 'lib/player.rb', line 75 def get_team if !@team_obj @team_obj = Team.new(@team_abbrev) end @team_obj end |
#init(element, gid) ⇒ Object
Initialize a player object by reading data from the players.xml file
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/player.rb', line 94 def init(element, gid) @gid = gid @pid = element.attributes['id'] @first = element.attributes['first'] @last = element.attributes['last'] @num= element.attributes['num'] @boxname = element.attributes['boxname'] @rl, = element.attributes['rl'] @position = element.attributes['position'] @status = element.attributes['status'] @bat_order = element.attributes['bat_order'] @game_position = element.attributes['game_position'] @avg = element.attributes['avg'] @hr = element.attributes['hr'] @rbi = element.attributes['rbi'] @wins = element.attributes['wins'] @losses = element.attributes['losses'] @era = element.attributes['era'] set_extra_info end |
#init_pitcher_from_scoreboard(element) ⇒ Object
Initializes pitcher info from data read from the masterscoreboard.xml file
31 32 33 34 35 36 37 |
# File 'lib/player.rb', line 31 def init_pitcher_from_scoreboard(element) @first = element.attributes['first'] @last = element.attributes['last'] @wins = element.attributes['wins'] @losses = element.attributes['losses'] @era = element.attributes['era'] end |
#load_from_id(gid, pid) ⇒ Object
Initializes a Player object by reading the player data from the players.xml file for the player specified by game id and player id.
18 19 20 21 22 23 24 25 26 27 |
# File 'lib/player.rb', line 18 def load_from_id(gid, pid) @gid = gid @pid = pid # fetch players.xml file @xml_data = GamedayFetcher.fetch_players(gid) @xml_doc = REXML::Document.new(@xml_data) # find specific player in the file pelement = @xml_doc.root.elements["team/player[@id=#{pid}]"] init(pelement, gid) end |