wurmlab/GeneValidator

View on GitHub
lib/genevalidator/validation_report.rb

Summary

Maintainability
A
1 hr
Test Coverage
A
97%
# Top level module / namespace.
module GeneValidator
  Plot = Struct.new(:data, :type, :title, :footer, :xtitle, :ytitle, :aux1,
                    :aux2)

  ##
  # This is an abstract class extended by
  # all validation reports
  class ValidationReport
    attr_reader :message
    attr_reader :plot_files
    attr_reader :result
    attr_reader :expected
    attr_reader :validation_result
    attr_reader :errors
    attr_accessor :short_header
    attr_accessor :header
    attr_accessor :description
    attr_accessor :run_time
    attr_accessor :approach
    attr_accessor :explanation
    attr_accessor :conclusion

    ##
    # Initilizes the object
    # Params:
    # +message+: result of the validation (to be displayed in the output)
    # +validation_result+: :yes for pass validation, :no for fail, :unapplicable
    # or :error
    # +short_header+: String
    # +header+: String
    # +description+: String
    # by default)
    def initialize(message = 'Not enough evidence', validation_result = :no,
                   short_header = '', header = '', description = '',
                   approach = '', explanation = '', conclusion = '')
      @message           = message
      @errors            = []
      @result            = validation_result
      @expected          = :yes
      @validation_result = validation_result
      @short_header      = short_header
      @header            = header
      @description       = description
      @approach          = approach
      @explanation       = explanation
      @conclusion        = conclusion
    end

    def print
      message
    end

    def validation
      validation_result
    end

    ##
    # May return "success" or "error"
    def color
      if validation == @expected
        'success'
      elsif validation == :error || validation == :unapplicable
        'warning'
      else
        validation == :warning ? 'warning' : 'danger'
      end
    end
  end
end