Sha256: 3298fd41f9bfc39474d81d13173c6044aa6a7aeb3a37b53476e7ddaf0c92a9d6

Contents?: true

Size: 1.03 KB

Versions: 2

Compression:

Stored size: 1.03 KB

Contents

# -*- encoding: utf-8 -*-

require 'erb'

module Coco

  # I format the index.html
  class HtmlIndexFormatter < Formatter

    def initialize(raw_coverages, uncovered)
      super
      @context = nil
      @template = Template.open File.join(Coco::ROOT, 'template/index.erb')
      @lines = []
      build_lines_for_context
    end

    def format
      @context = IndexContext.new(Helpers.index_title,
                                  @lines,
                                  @uncovered.map{|e| emphasize(e) })
      @template.result(@context.get_binding)
    end

    private

    def build_lines_for_context
      @raw_coverages.each do |filename, coverage|
        filename = File.expand_path(filename)
        percentage = CoverageStat.coverage_percent(coverage)
        on_disk_filename = Helpers.rb2html(filename)
        @lines << [percentage, emphasize(filename), on_disk_filename]
      end
      @lines.sort!
    end

    def emphasize(filename)
      base = File.basename filename
      filename.sub(base, "<b>#{base}</b>")
    end

  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
coco-0.12.0 lib/coco/formatter/html_index_formatter.rb
coco-0.11.0 lib/coco/formatter/html_index_formatter.rb