andey/bestofama

View on GitHub
app/views/ops/show.html.slim

Summary

Maintainability
Test Coverage
- set_meta_tags title: @op.name
- set_meta_tags canonical: op_url(@op.slug)

section itemscope='itemscope' itemtype="http://schema.org/Person"
  .row
    .col-sm-12
      h1 itemprop='name'= @op.name

  .row
    .col-xs-12.col-sm-4.col-md-3.col-lg-3
      - cache @op do
        - if @op.avatar_file_size
          //= image_tag @op.avatar.url(:medium), :class => 'img-rounded op-avatar', :itemprop => 'image'

        .panel.panel-info itemprop='description'
          .panel-heading About
          .panel-body
            = @op.content

        .panel.panel-primary.hidden-xs
          .panel-heading Reddit AMA Stats
          .panel-body
            table.table-borderless

              tr
                td
                  strong AMA Karma:
                td.table-value= @op.amas.sum('karma').to_i
              tr
                td
                  strong # AMA's:
                td.table-value= @op.amas.count
              tr
                td
                  strong x̄ AMA Karma:
                td.table-value= @op.amas.average('karma').to_i

              tr
                td  
                td  

              tr
                td
                  strong Comment Karma:
                td.table-value= @op.comment_karma
              tr
                td
                  strong # Comments:
                td.table-value= @op.comments.count
              tr
                td
                  strong x̄ Comment Karma
                td.table-value= @op.comments.average('karma').to_i

        .panel.panel-default.hidden-xs
          .panel-heading Tag Cloud
          .panel-body
            = @op.tag_list.map { |t| link_to t, tag_path(t) }.join(', ').html_safe

    .col-xs-12.col-sm-8.col-md-9.col-lg-9
      - cache ['show', 'hosted', @op, @op.amas.count]
        - if @op.amas.distinct.count > 0
          h2 Hosted AMAs
          hr/
          .list-group
            - @op.amas.distinct.each do |ama|
              = render partial: 'amas/snippet', locals: { ama: ama }

      - cache ['show', 'participated', @op, @op.participated.count]
        - if @op.participated.distinct.count > 0
          h2 Guest Appearances
          hr/
          .list-group
            - @op.participated.distinct.each do |ama|
              = render partial: 'amas/snippet', locals: { ama: ama }

      - cache ['show', 'comments', @op, @comments.count]
        - if @comments.count > 0
          h2 Highest Rated Comments
          hr/
          #comments.ama.ama-comments rel='comments'
            - @comments.each do |c|
              - if c.parent
                = render 'comments/show', :comment => c.parent, :depth => 0
                = render 'comments/show', :comment => c, :depth => 1
              - else
                = render 'comments/show', :comment => c, :depth => 0

.row
  .col-sm-12
    ol.breadcrumb itemscope="itemscope" itemtype="http://data-vocabulary.org/Breadcrumb"
      li= link_to (root_path), itemprop: "url" do
        span itemprop="title" BestofAMA
      li= link_to (ops_path), itemprop: "url" do
        span itemprop="title" OPs
      li.active= @op.name