class PuppetLint::Metrics::Abc

Attributes

metrics[R]

Public Class Methods

new() click to toggle source
# 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

Public Instance Methods

abc(o) click to toggle source
# File lib/puppet-lint/metrics/abc.rb, line 22
def abc(o)
  @@abc_visitor.visit_this_0(self, o)
end
abc_AssignmentExpression(o) click to toggle source
# File lib/puppet-lint/metrics/abc.rb, line 42
def abc_AssignmentExpression(o)
  assignment
end
abc_AttributeOperation(o) click to toggle source
# File lib/puppet-lint/metrics/abc.rb, line 46
def abc_AttributeOperation(o)
  assignment
end
abc_BlockExpression(o) click to toggle source
# File lib/puppet-lint/metrics/abc.rb, line 62
def abc_BlockExpression(o)
  branch
end
abc_CallExpression(o) click to toggle source
# File lib/puppet-lint/metrics/abc.rb, line 58
def abc_CallExpression(o)
  branch
end
abc_CaseExpression(o) click to toggle source
# File lib/puppet-lint/metrics/abc.rb, line 98
def abc_CaseExpression(o)
  conditional
end
abc_CollectorExpression(o) click to toggle source
# File lib/puppet-lint/metrics/abc.rb, line 54
def abc_CollectorExpression(o)
  branch
end
abc_ComparisonExpression(o) click to toggle source
# File lib/puppet-lint/metrics/abc.rb, line 78
def abc_ComparisonExpression(o)
  conditional
end
abc_EqualityExpression(o) click to toggle source
# File lib/puppet-lint/metrics/abc.rb, line 66
def abc_EqualityExpression(o)
  conditional
end
abc_IfExpression(o) click to toggle source
# File lib/puppet-lint/metrics/abc.rb, line 90
def abc_IfExpression(o)
  conditional
end
abc_InExpression(o) click to toggle source
# File lib/puppet-lint/metrics/abc.rb, line 82
def abc_InExpression(o)
  conditional
end
abc_MatchExpression(o) click to toggle source
# File lib/puppet-lint/metrics/abc.rb, line 70
def abc_MatchExpression(o)
  conditional
end
abc_NotExpression(o) click to toggle source
# File lib/puppet-lint/metrics/abc.rb, line 86
def abc_NotExpression(o)
  conditional
end
abc_NotMatchExpression(o) click to toggle source
# File lib/puppet-lint/metrics/abc.rb, line 74
def abc_NotMatchExpression(o)
  conditional
end
abc_Object(o) click to toggle source
# File lib/puppet-lint/metrics/abc.rb, line 26
def abc_Object(o)
  nil
end
abc_ResourceExpression(o) click to toggle source
# File lib/puppet-lint/metrics/abc.rb, line 50
def abc_ResourceExpression(o)
  branch
end
abc_SelectorExpression(o) click to toggle source
# File lib/puppet-lint/metrics/abc.rb, line 102
def abc_SelectorExpression(o)
  conditional
end
abc_UnlessExpression(o) click to toggle source
# File lib/puppet-lint/metrics/abc.rb, line 94
def abc_UnlessExpression(o)
  conditional
end
assignment() click to toggle source
# File lib/puppet-lint/metrics/abc.rb, line 38
def assignment
  @metrics[:assignment] += 1
end
branch() click to toggle source
# File lib/puppet-lint/metrics/abc.rb, line 34
def branch
  @metrics[:branch] += 1
end
compute(target) click to toggle source
# 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() click to toggle source
# File lib/puppet-lint/metrics/abc.rb, line 30
def conditional
  @metrics[:conditional] += 1
end