Class: ChurnVsComplexity::Complexity::PMD::FilesCalculator

Inherits:
Object
  • Object
show all
Defined in:
lib/churn_vs_complexity/complexity/pmd/files_calculator.rb

Instance Method Summary collapse

Constructor Details

#initialize(cache_components:) ⇒ FilesCalculator

Returns a new instance of FilesCalculator.



7
8
9
# File 'lib/churn_vs_complexity/complexity/pmd/files_calculator.rb', line 7

def initialize(cache_components:)
  @cache_components = cache_components
end

Instance Method Details

#calculate(files:) ⇒ Object



13
14
15
16
17
18
19
20
21
22
# File 'lib/churn_vs_complexity/complexity/pmd/files_calculator.rb', line 13

def calculate(files:)
  return Parser.empty_result if files.empty?

  cache_path = PMD.resolve_cache_path(*@cache_components)
  files_arg = files.map { |file| "-d #{file}" }.join(' ')
  command = "pmd check #{files_arg} -R #{PMD.resolve_ruleset_path} -f json -t #{CONCURRENCY} --cache #{cache_path} 2>/dev/null"
  output = `#{command}`

  Parser.new.parse(output)
end

#folder_based?Boolean

Returns:

  • (Boolean)


11
# File 'lib/churn_vs_complexity/complexity/pmd/files_calculator.rb', line 11

def folder_based? = false