porkchopclub/porkchop

View on GitHub
app/views/players/_stats.html.haml

Summary

Maintainability
Test Coverage
.porkbox-light
  %table.player-stats
    %thead
      %tr
        %th
        %th(colspan="4") Record
        %th(colspan="2") Elo Ratings
        %th(colspan="2") Streaks
      %tr
        %th
        %th GP
        %th W
        %th L
        %th W%
        %th(title="Highest Elo Rating") HER
        %th(title="Lowest Elo Rating") LER
        %th(title="Longest Winning Streak") LWS
        %th(title="Longest Losing Streak") LLS
    %tbody
      %tr
        %td Career
        %td(data-label="GP:")= @player.matches.finalized.count
        %td(data-label="W:")= @player.victories.count
        %td(data-label="L:")= @player.losses.count
        %td(data-label="W%:")= @stats.win_ratio
        %td(data-label="Highest Elo:")= @stats.highest_elo_rating
        %td(data-label="Lowest Elo:")= @stats.lowest_elo_rating
        %td(data-label="Longest Winning Streak:")= @stats.longest_winning_streak
        %td(data-label="Longest Losing Streak:")= @stats.longest_losing_streak

.porkbox-light.clearfix
  %canvas.player-elo-chart{ data: { ratings: @player.elo_ratings.sorted_ratings } }

.porkbox-light.clearfix
  .player-win-percentages
    %h2 Win Ratio by Opponent
    %table.player-win-percentage-list.alternating-rows
      %thead
        %tr
          %th Opponent
          %th W
          %th L
          %th(title="Winning Percentage") W%
      %tbody
        - @stats.win_ratio_by_opponent.each do |opponent, ratio|
          %tr
            %td= opponent.name
            %td= @stats.record_against(opponent)[0]
            %td= @stats.record_against(opponent)[1]
            %td= ratio

  .player-match-history
    %h2 Last 10 Matches
    = render "player_matches/list", matches: @player.matches.finalized.order(finalized_at: :desc).limit(10)
    %p= link_to "All Matches →", player_matches_path(@player)