Class: PuppetLint::Metrics::Abc
- Inherits:
-
Object
- Object
- PuppetLint::Metrics::Abc
- Defined in:
- lib/puppet-lint/metrics/abc.rb
Instance Attribute Summary collapse
-
#metrics ⇒ Object
readonly
Returns the value of attribute metrics.
Instance Method Summary collapse
- #abc(o) ⇒ Object
- #abc_AssignmentExpression(o) ⇒ Object
- #abc_AttributeOperation(o) ⇒ Object
- #abc_BlockExpression(o) ⇒ Object
- #abc_CallExpression(o) ⇒ Object
- #abc_CaseExpression(o) ⇒ Object
- #abc_CollectorExpression(o) ⇒ Object
- #abc_ComparisonExpression(o) ⇒ Object
- #abc_EqualityExpression(o) ⇒ Object
- #abc_IfExpression(o) ⇒ Object
- #abc_InExpression(o) ⇒ Object
- #abc_MatchExpression(o) ⇒ Object
- #abc_NotExpression(o) ⇒ Object
- #abc_NotMatchExpression(o) ⇒ Object
- #abc_Object(o) ⇒ Object
- #abc_ResourceExpression(o) ⇒ Object
- #abc_SelectorExpression(o) ⇒ Object
- #abc_UnlessExpression(o) ⇒ Object
- #assignment ⇒ Object
- #branch ⇒ Object
- #compute(target) ⇒ Object
- #conditional ⇒ Object
-
#initialize ⇒ Abc
constructor
A new instance of Abc.
Constructor Details
#initialize ⇒ Abc
Returns a new instance of Abc.
8 9 10 11 12 13 14 15 |
# File 'lib/puppet-lint/metrics/abc.rb', line 8 def initialize() @@abc_visitor ||= Puppet::Pops::Visitor.new(nil, "abc", 0, 0) @metrics = { assignment: 0, branch: 0, conditional: 0, } end |
Instance Attribute Details
#metrics ⇒ Object (readonly)
Returns the value of attribute metrics.
6 7 8 |
# File 'lib/puppet-lint/metrics/abc.rb', line 6 def metrics @metrics end |
Instance Method Details
#abc(o) ⇒ Object
22 23 24 |
# File 'lib/puppet-lint/metrics/abc.rb', line 22 def abc(o) @@abc_visitor.visit_this_0(self, o) end |
#abc_AssignmentExpression(o) ⇒ Object
42 43 44 |
# File 'lib/puppet-lint/metrics/abc.rb', line 42 def abc_AssignmentExpression(o) assignment end |
#abc_AttributeOperation(o) ⇒ Object
46 47 48 |
# File 'lib/puppet-lint/metrics/abc.rb', line 46 def abc_AttributeOperation(o) assignment end |
#abc_BlockExpression(o) ⇒ Object
62 63 64 |
# File 'lib/puppet-lint/metrics/abc.rb', line 62 def abc_BlockExpression(o) branch end |
#abc_CallExpression(o) ⇒ Object
58 59 60 |
# File 'lib/puppet-lint/metrics/abc.rb', line 58 def abc_CallExpression(o) branch end |
#abc_CaseExpression(o) ⇒ Object
98 99 100 |
# File 'lib/puppet-lint/metrics/abc.rb', line 98 def abc_CaseExpression(o) conditional end |
#abc_CollectorExpression(o) ⇒ Object
54 55 56 |
# File 'lib/puppet-lint/metrics/abc.rb', line 54 def abc_CollectorExpression(o) branch end |
#abc_ComparisonExpression(o) ⇒ Object
78 79 80 |
# File 'lib/puppet-lint/metrics/abc.rb', line 78 def abc_ComparisonExpression(o) conditional end |
#abc_EqualityExpression(o) ⇒ Object
66 67 68 |
# File 'lib/puppet-lint/metrics/abc.rb', line 66 def abc_EqualityExpression(o) conditional end |
#abc_IfExpression(o) ⇒ Object
90 91 92 |
# File 'lib/puppet-lint/metrics/abc.rb', line 90 def abc_IfExpression(o) conditional end |
#abc_InExpression(o) ⇒ Object
82 83 84 |
# File 'lib/puppet-lint/metrics/abc.rb', line 82 def abc_InExpression(o) conditional end |
#abc_MatchExpression(o) ⇒ Object
70 71 72 |
# File 'lib/puppet-lint/metrics/abc.rb', line 70 def abc_MatchExpression(o) conditional end |
#abc_NotExpression(o) ⇒ Object
86 87 88 |
# File 'lib/puppet-lint/metrics/abc.rb', line 86 def abc_NotExpression(o) conditional end |
#abc_NotMatchExpression(o) ⇒ Object
74 75 76 |
# File 'lib/puppet-lint/metrics/abc.rb', line 74 def abc_NotMatchExpression(o) conditional end |
#abc_Object(o) ⇒ Object
26 27 28 |
# File 'lib/puppet-lint/metrics/abc.rb', line 26 def abc_Object(o) nil end |
#abc_ResourceExpression(o) ⇒ Object
50 51 52 |
# File 'lib/puppet-lint/metrics/abc.rb', line 50 def abc_ResourceExpression(o) branch end |
#abc_SelectorExpression(o) ⇒ Object
102 103 104 |
# File 'lib/puppet-lint/metrics/abc.rb', line 102 def abc_SelectorExpression(o) conditional end |
#abc_UnlessExpression(o) ⇒ Object
94 95 96 |
# File 'lib/puppet-lint/metrics/abc.rb', line 94 def abc_UnlessExpression(o) conditional end |
#assignment ⇒ Object
38 39 40 |
# File 'lib/puppet-lint/metrics/abc.rb', line 38 def assignment @metrics[:assignment] += 1 end |
#branch ⇒ Object
34 35 36 |
# File 'lib/puppet-lint/metrics/abc.rb', line 34 def branch @metrics[:branch] += 1 end |
#compute(target) ⇒ Object
17 18 19 20 |
# File 'lib/puppet-lint/metrics/abc.rb', line 17 def compute(target) target.eAllContents.each { |m| abc(m) } [@metrics, Math.sqrt(@metrics[:assignment]**2 + @metrics[:branch]**2 + @metrics[:conditional]**2).round(2)] end |
#conditional ⇒ Object
30 31 32 |
# File 'lib/puppet-lint/metrics/abc.rb', line 30 def conditional @metrics[:conditional] += 1 end |