Sha256: dea33cbf1949b07fa87447830f5fb7fb7baba980f27a835df390dea5104a342f

Contents?: true

Size: 1.27 KB

Versions: 3

Compression:

Stored size: 1.27 KB

Contents

require 'erb'

module Xcov
  class Base

    attr_accessor :name
    attr_accessor :coverage
    attr_accessor :displayable_coverage
    attr_accessor :coverage_color

    attr_accessor :id

    def create_displayable_coverage
      return "" if @ignored

      "%.0f%%" % [(@coverage*100)]
    end

    def create_coverage_color
      return "#363636" if @ignored

      if @coverage > 0.8
        return "#1FCB32"
      elsif @coverage > 0.65
        return "#FCFF00"
      elsif @coverage > 0.5
        return "#FF9C00"
      else
        return "#FF0000"
      end
    end

    def create_summary
      if @coverage > 0.8
        return "Overall coverage is good"
      elsif @coverage > 0.65
        return "There is room for improvement"
      elsif @coverage > 0.5
        return "Almost unmaintainable"
      else
        return "Keep calm and leave the boat"
      end
    end

    # Class methods
    def self.template(name)
      ERB.new(File.read(File.join(File.dirname(__FILE__), "../../../views/", "#{name}.erb")))
    end

    def self.create_id(name)
      char_map = [('a'..'z'), ('A'..'Z')].map { |i| i.to_a }.flatten
      random = (0...50).map { char_map[rand(char_map.length)] }.join
      pre_hash = "#{random}_#{name}"
      Digest::SHA1.hexdigest(pre_hash)
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
xcov-0.8 lib/xcov/model/base.rb
xcov-0.7 lib/xcov/model/base.rb
xcov-0.6 lib/xcov/model/base.rb