Class: Sports::Match
- Inherits:
-
Object
- Object
- Sports::Match
- Defined in:
- lib/sports/structs/match.rb
Instance Attribute Summary collapse
-
#comments ⇒ Object
readonly
Returns the value of attribute comments.
-
#conf1 ⇒ Object
readonly
Returns the value of attribute conf1.
-
#conf2 ⇒ Object
readonly
Returns the value of attribute conf2.
-
#country1 ⇒ Object
readonly
Returns the value of attribute country1.
-
#country2 ⇒ Object
readonly
Returns the value of attribute country2.
-
#date ⇒ Object
readonly
Returns the value of attribute date.
-
#goals ⇒ Object
todo/fix: make goals like all other attribs!!.
-
#group ⇒ Object
readonly
Returns the value of attribute group.
-
#league ⇒ Object
readonly
Returns the value of attribute league.
-
#leg ⇒ Object
readonly
Returns the value of attribute leg.
-
#round ⇒ Object
readonly
Returns the value of attribute round.
-
#score1 ⇒ Object
readonly
Returns the value of attribute score1.
-
#score1agg ⇒ Object
readonly
Returns the value of attribute score1agg.
-
#score1et ⇒ Object
readonly
Returns the value of attribute score1et.
-
#score1i ⇒ Object
readonly
Returns the value of attribute score1i.
-
#score1p ⇒ Object
readonly
Returns the value of attribute score1p.
-
#score2 ⇒ Object
readonly
Returns the value of attribute score2.
-
#score2agg ⇒ Object
readonly
Returns the value of attribute score2agg.
-
#score2et ⇒ Object
readonly
Returns the value of attribute score2et.
-
#score2i ⇒ Object
readonly
Returns the value of attribute score2i.
-
#score2p ⇒ Object
readonly
Returns the value of attribute score2p.
-
#stage ⇒ Object
readonly
Returns the value of attribute stage.
-
#status ⇒ Object
readonly
Returns the value of attribute status.
-
#team1 ⇒ Object
readonly
Returns the value of attribute team1.
-
#team2 ⇒ Object
readonly
Returns the value of attribute team2.
-
#winner ⇒ Object
readonly
Returns the value of attribute winner.
Instance Method Summary collapse
-
#complete? ⇒ Boolean
for now all scores are complete - in the future check scores; might be missing - not yet entered.
-
#initialize(**kwargs) ⇒ Match
constructor
A new instance of Match.
-
#over? ⇒ Boolean
for now all matches are over - in the future check date!!!.
-
#score_str ⇒ Object
pretty print (full time) scores; convenience method.
-
#scorei_str ⇒ Object
pretty print (half time) scores; convenience method.
- #update(**kwargs) ⇒ Object
Constructor Details
#initialize(**kwargs) ⇒ Match
Returns a new instance of Match.
28 29 30 |
# File 'lib/sports/structs/match.rb', line 28 def initialize( **kwargs ) update( kwargs ) unless kwargs.empty? end |
Instance Attribute Details
#comments ⇒ Object (readonly)
Returns the value of attribute comments.
7 8 9 |
# File 'lib/sports/structs/match.rb', line 7 def comments @comments end |
#conf1 ⇒ Object (readonly)
Returns the value of attribute conf1.
7 8 9 |
# File 'lib/sports/structs/match.rb', line 7 def conf1 @conf1 end |
#conf2 ⇒ Object (readonly)
Returns the value of attribute conf2.
7 8 9 |
# File 'lib/sports/structs/match.rb', line 7 def conf2 @conf2 end |
#country1 ⇒ Object (readonly)
Returns the value of attribute country1.
7 8 9 |
# File 'lib/sports/structs/match.rb', line 7 def country1 @country1 end |
#country2 ⇒ Object (readonly)
Returns the value of attribute country2.
7 8 9 |
# File 'lib/sports/structs/match.rb', line 7 def country2 @country2 end |
#date ⇒ Object (readonly)
Returns the value of attribute date.
7 8 9 |
# File 'lib/sports/structs/match.rb', line 7 def date @date end |
#goals ⇒ Object
todo/fix: make goals like all other attribs!!
26 27 28 |
# File 'lib/sports/structs/match.rb', line 26 def goals @goals end |
#group ⇒ Object (readonly)
Returns the value of attribute group.
7 8 9 |
# File 'lib/sports/structs/match.rb', line 7 def group @group end |
#league ⇒ Object (readonly)
Returns the value of attribute league.
7 8 9 |
# File 'lib/sports/structs/match.rb', line 7 def league @league end |
#leg ⇒ Object (readonly)
Returns the value of attribute leg.
7 8 9 |
# File 'lib/sports/structs/match.rb', line 7 def leg @leg end |
#round ⇒ Object (readonly)
Returns the value of attribute round.
7 8 9 |
# File 'lib/sports/structs/match.rb', line 7 def round @round end |
#score1 ⇒ Object (readonly)
Returns the value of attribute score1.
7 8 9 |
# File 'lib/sports/structs/match.rb', line 7 def score1 @score1 end |
#score1agg ⇒ Object (readonly)
Returns the value of attribute score1agg.
7 8 9 |
# File 'lib/sports/structs/match.rb', line 7 def score1agg @score1agg end |
#score1et ⇒ Object (readonly)
Returns the value of attribute score1et.
7 8 9 |
# File 'lib/sports/structs/match.rb', line 7 def score1et @score1et end |
#score1i ⇒ Object (readonly)
Returns the value of attribute score1i.
7 8 9 |
# File 'lib/sports/structs/match.rb', line 7 def score1i @score1i end |
#score1p ⇒ Object (readonly)
Returns the value of attribute score1p.
7 8 9 |
# File 'lib/sports/structs/match.rb', line 7 def score1p @score1p end |
#score2 ⇒ Object (readonly)
Returns the value of attribute score2.
7 8 9 |
# File 'lib/sports/structs/match.rb', line 7 def score2 @score2 end |
#score2agg ⇒ Object (readonly)
Returns the value of attribute score2agg.
7 8 9 |
# File 'lib/sports/structs/match.rb', line 7 def score2agg @score2agg end |
#score2et ⇒ Object (readonly)
Returns the value of attribute score2et.
7 8 9 |
# File 'lib/sports/structs/match.rb', line 7 def score2et @score2et end |
#score2i ⇒ Object (readonly)
Returns the value of attribute score2i.
7 8 9 |
# File 'lib/sports/structs/match.rb', line 7 def score2i @score2i end |
#score2p ⇒ Object (readonly)
Returns the value of attribute score2p.
7 8 9 |
# File 'lib/sports/structs/match.rb', line 7 def score2p @score2p end |
#stage ⇒ Object (readonly)
Returns the value of attribute stage.
7 8 9 |
# File 'lib/sports/structs/match.rb', line 7 def stage @stage end |
#status ⇒ Object (readonly)
Returns the value of attribute status.
7 8 9 |
# File 'lib/sports/structs/match.rb', line 7 def status @status end |
#team1 ⇒ Object (readonly)
Returns the value of attribute team1.
7 8 9 |
# File 'lib/sports/structs/match.rb', line 7 def team1 @team1 end |
#team2 ⇒ Object (readonly)
Returns the value of attribute team2.
7 8 9 |
# File 'lib/sports/structs/match.rb', line 7 def team2 @team2 end |
#winner ⇒ Object (readonly)
Returns the value of attribute winner.
7 8 9 |
# File 'lib/sports/structs/match.rb', line 7 def winner @winner end |
Instance Method Details
#complete? ⇒ Boolean
for now all scores are complete - in the future check scores; might be missing - not yet entered
145 |
# File 'lib/sports/structs/match.rb', line 145 def complete?() true; end |
#over? ⇒ Boolean
for now all matches are over - in the future check date!!!
144 |
# File 'lib/sports/structs/match.rb', line 144 def over?() true; end |
#score_str ⇒ Object
pretty print (full time) scores; convenience method
148 149 150 |
# File 'lib/sports/structs/match.rb', line 148 def score_str # pretty print (full time) scores; convenience method "#{@score1}-#{@score2}" end |
#scorei_str ⇒ Object
pretty print (half time) scores; convenience method
152 153 154 |
# File 'lib/sports/structs/match.rb', line 152 def scorei_str # pretty print (half time) scores; convenience method "#{@score1i}-#{@score2i}" end |
#update(**kwargs) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 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 130 131 132 133 134 135 136 137 138 139 140 |
# File 'lib/sports/structs/match.rb', line 32 def update( **kwargs ) ## note: check with has_key? because value might be nil!!! @date = kwargs[:date] if kwargs.has_key? :date ## todo/fix: use team1_name, team2_name or similar - for compat with db activerecord version? why? why not? @team1 = kwargs[:team1] if kwargs.has_key? :team1 @team2 = kwargs[:team2] if kwargs.has_key? :team2 @conf1 = kwargs[:conf1] if kwargs.has_key? :conf1 @conf2 = kwargs[:conf2] if kwargs.has_key? :conf2 @country1 = kwargs[:country1] if kwargs.has_key? :country1 @country2 = kwargs[:country2] if kwargs.has_key? :country2 ## note: round is a string!!! e.g. '1', '2' for matchday or 'Final', 'Semi-final', etc. ## todo: use to_s - why? why not? @round = kwargs[:round] if kwargs.has_key? :round @stage = kwargs[:stage] if kwargs.has_key? :stage @leg = kwargs[:leg] if kwargs.has_key? :leg @group = kwargs[:group] if kwargs.has_key? :group @status = kwargs[:status] if kwargs.has_key? :status @comments = kwargs[:comments] if kwargs.has_key? :comments @league = kwargs[:league] if kwargs.has_key? :league if kwargs.has_key?( :score ) ## check all-in-one score struct for convenience!!! score = kwargs[:score] if score.nil? ## reset all score attribs to nil!! @score1 = nil @score1i = nil @score1et = nil @score1p = nil ## @score1agg = nil @score2 = nil @score2i = nil @score2et = nil @score2p = nil ## @score2agg = nil else @score1 = score.score1 @score1i = score.score1i @score1et = score.score1et @score1p = score.score1p ## @score1agg = score.score1agg @score2 = score.score2 @score2i = score.score2i @score2et = score.score2et @score2p = score.score2p ## @score2agg = score.score2agg end else @score1 = kwargs[:score1] if kwargs.has_key? :score1 @score1i = kwargs[:score1i] if kwargs.has_key? :score1i @score1et = kwargs[:score1et] if kwargs.has_key? :score1et @score1p = kwargs[:score1p] if kwargs.has_key? :score1p @score1agg = kwargs[:score1agg] if kwargs.has_key? :score1agg @score2 = kwargs[:score2] if kwargs.has_key? :score2 @score2i = kwargs[:score2i] if kwargs.has_key? :score2i @score2et = kwargs[:score2et] if kwargs.has_key? :score2et @score2p = kwargs[:score2p] if kwargs.has_key? :score2p @score2agg = kwargs[:score2agg] if kwargs.has_key? :score2agg ## note: (always) (auto-)convert scores to integers @score1 = @score1.to_i if @score1 @score1i = @score1i.to_i if @score1i @score1et = @score1et.to_i if @score1et @score1p = @score1p.to_i if @score1p @score1agg = @score1agg.to_i if @score1agg @score2 = @score2.to_i if @score2 @score2i = @score2i.to_i if @score2i @score2et = @score2et.to_i if @score2et @score2p = @score2p.to_i if @score2p @score2agg = @score2agg.to_i if @score2agg end ## todo/fix: ## gr-greece/2014-15/G1.csv: ## G1,10/05/15,Niki Volos,OFI,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ## ## for now score1 and score2 must be present if @score1.nil? || @score2.nil? puts "** WARN: missing scores for match:" pp kwargs ## exit 1 end ## todo/fix: auto-calculate winner # return 1,2,0 1 => team1, 2 => team2, 0 => draw/tie ### calculate winner - use 1,2,0 if @score1 && @score2 if @score1 > @score2 @winner = 1 elsif @score2 > @score1 @winner = 2 elsif @score1 == @score2 @winner = 0 else end else @winner = nil # unknown / undefined end self ## note - MUST return self for chaining end |