Class: Ossert::Classifiers::Growing::Check

Inherits:
Object
  • Object
show all
Defined in:
lib/ossert/classifiers/growing/check.rb

Defined Under Namespace

Classes: Base, Maintenance, Maturity, Popularity

Constant Summary collapse

GRADES =
%w(
  A
  B
  C
  D
  E
).freeze
KLASS_2_GRADE =
{
  'ClassA' => 'A',
  'ClassB' => 'B',
  'ClassC' => 'C',
  'ClassD' => 'D',
  'ClassE' => 'E'
}.freeze

Class Method Summary collapse

Class Method Details

.check(*args) ⇒ Object



34
35
36
# File 'lib/ossert/classifiers/growing/check.rb', line 34

def check(*args)
  process_using(*args.unshift(:grade_as_hash))
end

.check_class_by(check_name) ⇒ Object



42
43
44
45
46
# File 'lib/ossert/classifiers/growing/check.rb', line 42

def check_class_by(check_name)
  Kernel.const_get(
    "Ossert::Classifiers::Growing::Check::#{check_name.capitalize}"
  )
end

.grade(*args) ⇒ Object



38
39
40
# File 'lib/ossert/classifiers/growing/check.rb', line 38

def grade(*args)
  process_using(*args.unshift(:grade))
end

.process_using(action, config, project, classifiers, last_year_offset = 1) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
# File 'lib/ossert/classifiers/growing/check.rb', line 22

def process_using(action, config, project, classifiers, last_year_offset = 1)
  checks_rates = config['checks'].map do |check_name|
    [
      check_name.to_sym,
      check_class_by(check_name).new(
        config, project, classifiers, last_year_offset
      ).send(action)
    ]
  end
  checks_rates.to_h
end