Class: StatModule::Finding

Inherits:
JSONable show all
Defined in:
lib/finding.rb

Constant Summary

Constants inherited from JSONable

JSONable::FORMATTING_BALL, JSONable::FORMATTING_CHECKMARK, JSONable::FORMATTING_STAR, JSONable::FORMATTING_WARNING

Instance Method Summary collapse

Methods inherited from JSONable

from_json!, #to_json

Constructor Details

#initialize(failure, rule, description, hash = nil) ⇒ Finding

Returns a new instance of Finding.

Raises:



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/finding.rb', line 6

def initialize(failure, rule, description, hash = nil)
  if hash.is_a? Hash
    super(hash)
    return
  end

  raise TypeException unless rule.is_a?(String) && description.is_a?(String)
  @failure = failure
  @rule = rule
  @description = description
end

Instance Method Details

#categoriesObject



62
63
64
# File 'lib/finding.rb', line 62

def categories
  @categories
end

#categories=(categories) ⇒ Object

Raises:



53
54
55
56
57
58
59
60
# File 'lib/finding.rb', line 53

def categories=(categories)
  raise TypeException unless categories.is_a?(Array)
  categories.each { |item|
    raise TypeException unless Category.all.include?(item)
    raise DuplicateElementException if @categories.include?(item)
    @categories.push(item)
  }
end

#descriptionObject



40
41
42
# File 'lib/finding.rb', line 40

def description
  @description
end

#description=(description) ⇒ Object

Raises:



35
36
37
38
# File 'lib/finding.rb', line 35

def description=(description)
  raise TypeException unless description.is_a?(String)
  @description = description
end

#detailObject



49
50
51
# File 'lib/finding.rb', line 49

def detail
  @detail
end

#detail=(detail) ⇒ Object

Raises:



44
45
46
47
# File 'lib/finding.rb', line 44

def detail=(detail)
  raise TypeException unless detail.is_a?(StatModule::Detail)
  @detail = detail
end

#failureObject



22
23
24
# File 'lib/finding.rb', line 22

def failure
  @failure
end

#failure=(failure) ⇒ Object



18
19
20
# File 'lib/finding.rb', line 18

def failure=(failure)
  @failure = failure
end

#fixesObject



102
103
104
# File 'lib/finding.rb', line 102

def fixes
  @fixes
end

#fixes=(fixes) ⇒ Object

Raises:



93
94
95
96
97
98
99
100
# File 'lib/finding.rb', line 93

def fixes=(fixes)
  raise TypeException unless fixes.is_a?(Array)
  fixes.each { |item|
    raise TypeException unless item.is_a?(StatModule::Fix)
    raise DuplicateElementException if @fixes.include?(item)
    @fixes.push(item)
  }
end

#locationObject



71
72
73
# File 'lib/finding.rb', line 71

def location
  @location
end

#location=(location) ⇒ Object

Raises:



66
67
68
69
# File 'lib/finding.rb', line 66

def location=(location)
  raise TypeException unless location.is_a?(Location)
  @location = location
end


106
107
108
109
110
111
112
113
114
115
116
117
118
# File 'lib/finding.rb', line 106

def print(formatted = false)
  result = "#{rule}, #{description}"
  if formatted
    if failure
      result = "#{FORMATTING_BALL} #{result}".colorize(:red)
    else
      result = "#{FORMATTING_WARNING} #{result}".colorize(:yellow)
    end
  end
  result += "\n#{location.print}" unless location.nil?
  result += "\nRECOMMENDATION: #{recommendation}" unless recommendation.nil?
  result
end

#recommendationObject



89
90
91
# File 'lib/finding.rb', line 89

def recommendation
  @recommendation
end

#recommendation=(recommendation) ⇒ Object

Raises:



84
85
86
87
# File 'lib/finding.rb', line 84

def recommendation=(recommendation)
  raise TypeException unless recommendation.is_a?(String)
  @recommendation = recommendation
end

#ruleObject



31
32
33
# File 'lib/finding.rb', line 31

def rule
  @rule
end

#rule=(rule) ⇒ Object

Raises:



26
27
28
29
# File 'lib/finding.rb', line 26

def rule=(rule)
  raise TypeException unless rule.is_a?(String)
  @rule = rule
end

#time_to_fixObject



80
81
82
# File 'lib/finding.rb', line 80

def time_to_fix
  @timeToFix
end

#time_to_fix=(time_to_fix) ⇒ Object

Raises:



75
76
77
78
# File 'lib/finding.rb', line 75

def time_to_fix=(time_to_fix)
  raise TypeException unless time_to_fix.is_a?(Integer)
  @timeToFix = time_to_fix
end