Class: Diogenes::Evaluation::DecisionRecord

Inherits:
Object
  • Object
show all
Defined in:
lib/diogenes/evaluation/decision_record.rb

Defined Under Namespace

Classes: RenderContext

Constant Summary collapse

DEFAULT_OUTPUT_DIR =

: String

"docs/decisions"
BUNDLED_TEMPLATE =

: String

File.expand_path("../templates/init/artifacts/decision_record.md.erb", __dir__).freeze
PROJECT_TEMPLATE =

: String

".diogenes/artifacts/decision_record.md.erb"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(description:, results:, evaluator:, output_dir: DEFAULT_OUTPUT_DIR) ⇒ DecisionRecord

: (description: String, results: Array, evaluator: String, ?output_dir: String) -> void



16
17
18
19
20
21
22
23
24
# File 'lib/diogenes/evaluation/decision_record.rb', line 16

def initialize(description:, results:, evaluator:, output_dir: DEFAULT_OUTPUT_DIR)
  @description = description
  @results = results
  @evaluator = evaluator
  @output_dir = output_dir
  @alternative = "" #: String
  @conditions = "" #: String
  @notes = "" #: String
end

Instance Attribute Details

#alternative=(value) ⇒ Object (writeonly)

: String



26
27
28
# File 'lib/diogenes/evaluation/decision_record.rb', line 26

def alternative=(value)
  @alternative = value
end

#conditions=(value) ⇒ Object (writeonly)

: String



27
28
29
# File 'lib/diogenes/evaluation/decision_record.rb', line 27

def conditions=(value)
  @conditions = value
end

#notes=(value) ⇒ Object (writeonly)

: String



28
29
30
# File 'lib/diogenes/evaluation/decision_record.rb', line 28

def notes=(value)
  @notes = value
end

#verdictObject

: () -> String



31
32
33
# File 'lib/diogenes/evaluation/decision_record.rb', line 31

def verdict
  @verdict ||= @results.all?(&:passed?) ? "PROCEED" : "REJECT"
end

Instance Method Details

#filenameObject

: () -> String



39
40
41
# File 'lib/diogenes/evaluation/decision_record.rb', line 39

def filename
  "#{slugify(@description)}_decision.md"
end

#write(cwd:) ⇒ Object

: (cwd: String) -> String



44
45
46
47
48
49
50
# File 'lib/diogenes/evaluation/decision_record.rb', line 44

def write(cwd:)
  dir = File.join(cwd, @output_dir)
  FileUtils.mkdir_p(dir)
  path = File.join(dir, filename)
  File.write(path, render(cwd:))
  path
end