define(['_'], function(_) { var resultParser = {}; resultParser._addJSDateToResult = function(res){ var date = res.date.split('/'); var time = res.time.split(':'); res.jsDate = new Date( Number(date[0]), Number(date[1]) - 1, Number(date[2]), Number(time[0]), Number(time[1]) ); return res; }; resultParser.parseResults = function(rawResults){ rawResults = _.map(rawResults, resultParser._addJSDateToResult); rawResults = _.map(rawResults, resultParser._addCustomStyle); return rawResults; }; resultParser.getNightGames = function(rawResults){ var ret = {}; _.each(resultParser.parseResults(rawResults), function(res){ if(_.has(ret, res.date)){ ret[res.date].push(res); }else{ ret[res.date] = [res]; } }); return _.map(ret, function(games, date){ return {date: date, games: games}; }); }; resultParser._getAllTeams = function(rawResults){ var homeTeams = _.map(rawResults, 'home'); var awayTeams = _.map(rawResults, 'away'); return _.uniq(_.concat(homeTeams, awayTeams)); }; resultParser._getTeamStats = function(rawResults, team){ var ret = {team: team, gamePlayed: 0}; _.each(rawResults, function(res){ if((team != res.home && team != res.away) || !_.isNumber(res.home_points)){ return; } ret.gamePlayed += 1; }); return ret; }; resultParser.getStats = function(rawResults){ var allTeams = resultParser._getAllTeams(rawResults); var getTeamStats = _.partial(resultParser._getTeamStats, rawResults); return _.map(allTeams, getTeamStats); }; return resultParser; });