Module: OmniAgent::Eval::CLI

Defined in:
lib/omni_agent/eval/cli.rb

Constant Summary collapse

DEFAULT_PATTERN =
"evals/**/*_eval.rb"

Class Method Summary collapse

Class Method Details

.run(pattern: nil, fresh: false) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/omni_agent/eval/cli.rb', line 6

def self.run(pattern: nil, fresh: false)
  OmniAgent::Eval::Cache.clear! if fresh

  files = Dir.glob(Rails.root.join(pattern || DEFAULT_PATTERN))
  return :no_files if files.empty?

  files.each { |file| require file }

  eval_classes = ObjectSpace.each_object(Class).select { |klass| klass < OmniAgent::Eval }
  return :no_evals if eval_classes.empty?

  reports = eval_classes.map(&:run_all)
  reports.each(&:print)

  reports.all?(&:passed?) ? :passed : :failed
end