Module: ChurnVsComplexity::Complexity::ESLintCalculator
- Defined in:
- lib/churn_vs_complexity/complexity/eslint_calculator.rb
Class Method Summary collapse
Class Method Details
.calculate(files:) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/churn_vs_complexity/complexity/eslint_calculator.rb', line 9 def calculate(files:) dir_path = File.join(gem_root, 'tmp', 'eslint-support') script_path = File.join(dir_path, 'complexity-calculator.js') install_command = "npm install --prefix '#{dir_path}'" `#{install_command}` command = "node #{script_path} '#{files.to_json}'" complexity = `#{command}` raise Error, 'Failed to calculate complexity' if complexity.empty? all = JSON.parse(complexity) all.to_h do |abc| [abc['file'], abc['complexity']] end end |
.check_dependencies! ⇒ Object
26 27 28 29 30 |
# File 'lib/churn_vs_complexity/complexity/eslint_calculator.rb', line 26 def check_dependencies! `npm --version` rescue Errno::ENOENT raise Error, 'Needs node and npm installed' end |
.folder_based? ⇒ Boolean
7 |
# File 'lib/churn_vs_complexity/complexity/eslint_calculator.rb', line 7 def folder_based? = false |