class VirtualFunction

Public Class Methods

new(function, file, lines) click to toggle source
# File lib/virtual_function.rb, line 2
def initialize(function, file, lines)
  @name = function[:name]
  @file = file
  @start = function[:start]
  @end = function[:end]
  @lines = lines[(@start - 1)..@end]
end

Public Instance Methods

as_json() click to toggle source
# File lib/virtual_function.rb, line 10
def as_json()
  commits = {}
  issues = {}
  errors = {}
  bugs = {}
  score = 0

  @lines.each do |line|
    commits[line[:commit]] = true
    line[:revisions].each { |revision| commits[revision[:commit]] = true }
    line[:issues].each { |issue| issues[issue] = true }
    line[:errors].each { |error| errors[error] = true }
    line[:bugs].each { |bug| bugs[bug] = true }
    score += Line.score(line)
  end

  {
    name: @name,
    file: @file,
    start: @start,
    end: @end,
    bugs: bugs.keys,
    commits: commits.keys,
    issues: issues.keys,
    errors: errors.keys,
    score: score
  }
end