Class: Players
Instance Method Summary collapse
- #_add(new_rec) ⇒ Object
-
#add(recs) ⇒ Object
rename to collect - why? why not?.
-
#add_bookings(bookings) ⇒ Object
yellow/red cards.
- #bench ⇒ Object
- #dump ⇒ Object
- #find(id_player) ⇒ Object
- #find!(id_player) ⇒ Object
-
#initialize ⇒ Players
constructor
A new instance of Players.
-
#lineup ⇒ Object
todo/check add alias (or rename) starter ?? add new subs to status == 2 - why? why not?.
- #redcards ⇒ Object
- #size ⇒ Object
- #yellowcards ⇒ Object
- #yellowredcards ⇒ Object
Constructor Details
#initialize ⇒ Players
Returns a new instance of Players.
9 10 11 |
# File 'lib/fifadat/tables/players.rb', line 9 def initialize @recs = {} end |
Instance Method Details
#_add(new_rec) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/fifadat/tables/players.rb', line 24 def _add( new_rec ) rec = @recs[ new_rec.id ] if rec.nil? rec = new_rec @recs[ new_rec.id ] = new_rec else ## assert attributes equal - why? why not? assert( new_rec == rec, "player records NOT matching - #{rec.pretty_inspect} != #{new_rec.pretty_inspect}") end rec end |
#add(recs) ⇒ Object
rename to collect - why? why not?
13 14 15 16 17 18 19 20 21 |
# File 'lib/fifadat/tables/players.rb', line 13 def add( recs ) ## rename to collect - why? why not? recs.each do |rec| raise ArgumentError, "player (obj) expected; got #{rec.class.name} - #{rec.inspect}" unless rec.is_a?( Player ) rec = _add( rec ) rec.count += 1 ## track usage - why? why not? end end |
#add_bookings(bookings) ⇒ Object
yellow/red cards
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
# File 'lib/fifadat/tables/players.rb', line 86 def add_bookings( bookings ) ## yellow/red cards bookings.each do |b| card = b['Card'] assert( [0,1,2,3].include?( card ), "card 0/1/2/3 expected; got #{b.pretty_inspect}") ## ## what is card 0? ignore for now ## Palmeiras v FC Porto 0-0 - 2025-06-15T18:00:00+00:00 ## !! ASSERT FAILED - card 1/2/3 expected; got {"Card"=>0, ## "Period"=>5, ## "IdEvent"=>nil, ## "EventNumber"=>nil, ## "IdPlayer"=>"495048", ## "IdCoach"=>nil, ## "IdTeam"=>"1884426", ## "Minute"=>"72'", ## "Reason"=>nil} next if card == 0 idPlayer = b['IdPlayer'] ## booking (card) for coach or stuff!!!! ## skip for now next if idPlayer.nil? && (b['IdCoach'] || b['IdStaff']) player = @recs[ idPlayer ] assert( player, "booking player not found; sorry - #{b.pretty_inspect}" ) ## note - parse & reformat minute for keep same format ## _fmt_minute( *_parse_minute( b['Minute'] )) minute = _build_minute( b ) if card == 1 ## yellow player.y = Player::Card.new( player: player, type: 'Y', minute: minute ) elsif card == 2 ## red player.r = Player::Card.new( player: player, type: 'R', minute: minute ) elsif card == 3 ## yellow/red player.yr = Player::Card.new( player: player, type: 'YR', minute: minute ) end end end |
#bench ⇒ Object
63 64 65 |
# File 'lib/fifadat/tables/players.rb', line 63 def bench @recs.values.select { |rec| rec.bench? } end |
#dump ⇒ Object
133 134 135 136 |
# File 'lib/fifadat/tables/players.rb', line 133 def dump pp @recs.values puts " #{@recs.size} player(s)" end |
#find(id_player) ⇒ Object
41 42 43 44 |
# File 'lib/fifadat/tables/players.rb', line 41 def find( id_player ) rec = @recs[ id_player ] rec end |
#find!(id_player) ⇒ Object
46 47 48 49 50 |
# File 'lib/fifadat/tables/players.rb', line 46 def find!( id_player ) rec = @recs[ id_player ] raise ArgumentError, "no player w/ id >#{id_player}< found; sorry" if rec.nil? rec end |
#lineup ⇒ Object
todo/check add alias (or rename) starter ?? add new subs to status == 2 - why? why not?
59 60 61 |
# File 'lib/fifadat/tables/players.rb', line 59 def lineup @recs.values.select { |rec| rec.starter? } end |
#redcards ⇒ Object
68 69 70 71 |
# File 'lib/fifadat/tables/players.rb', line 68 def redcards @recs.values.select { |rec| rec.red? } .map { |rec| rec.r } end |
#size ⇒ Object
138 |
# File 'lib/fifadat/tables/players.rb', line 138 def size() @recs.size; end |
#yellowcards ⇒ Object
73 74 75 76 |
# File 'lib/fifadat/tables/players.rb', line 73 def yellowcards @recs.values.select { |rec| rec.yellow? } .map { |rec| rec.y } end |
#yellowredcards ⇒ Object
78 79 80 81 |
# File 'lib/fifadat/tables/players.rb', line 78 def yellowredcards @recs.values.select { |rec| rec.yellowred? } .map { |rec| rec.yr } end |