Class: Rigor::SigGen::WriteResult

Inherits:
Object
  • Object
show all
Defined in:
lib/rigor/sig_gen/write_result.rb

Overview

Per-source-file outcome of a ‘rigor sig-gen –write` run.

The writer reports back what it did so the renderer (and the CLI’s exit-status logic) can summarise actions and surface user-authored-skip decisions without having to re-parse the produced files.

  • ‘source_path` — original `.rb` file.

  • ‘target_path` — `.rbs` file the writer was responsible for (`nil` when the source path falls outside the project signature tree, in which case `action` is `:skipped_outside_sig_root`).

  • ‘action` — one of `:created` / `:updated` / `:noop` / `:skipped_outside_sig_root`.

  • ‘applied` — the MethodCandidates that actually landed on disk.

  • ‘skipped` — the MethodCandidates the writer declined (e.g. tighter-return without `–overwrite`). Each entry pairs the candidate with a skip reason keyword (`:user_authored`).

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(source_path:, target_path:, action:, applied: [], skipped: []) ⇒ WriteResult

Returns a new instance of WriteResult.



28
29
30
31
32
33
34
35
# File 'lib/rigor/sig_gen/write_result.rb', line 28

def initialize(source_path:, target_path:, action:, applied: [], skipped: [])
  @source_path = source_path
  @target_path = target_path
  @action = action
  @applied = applied.freeze
  @skipped = skipped.freeze
  freeze
end

Instance Attribute Details

#actionObject (readonly)

Returns the value of attribute action.



26
27
28
# File 'lib/rigor/sig_gen/write_result.rb', line 26

def action
  @action
end

#appliedObject (readonly)

Returns the value of attribute applied.



26
27
28
# File 'lib/rigor/sig_gen/write_result.rb', line 26

def applied
  @applied
end

#skippedObject (readonly)

Returns the value of attribute skipped.



26
27
28
# File 'lib/rigor/sig_gen/write_result.rb', line 26

def skipped
  @skipped
end

#source_pathObject (readonly)

Returns the value of attribute source_path.



26
27
28
# File 'lib/rigor/sig_gen/write_result.rb', line 26

def source_path
  @source_path
end

#target_pathObject (readonly)

Returns the value of attribute target_path.



26
27
28
# File 'lib/rigor/sig_gen/write_result.rb', line 26

def target_path
  @target_path
end

Instance Method Details

#to_hObject



37
38
39
40
41
42
43
44
45
# File 'lib/rigor/sig_gen/write_result.rb', line 37

def to_h
  {
    source: source_path,
    target: target_path&.to_s,
    action: action.to_s,
    applied: applied.map(&:to_h),
    skipped: skipped.map { |c, reason| c.to_h.merge(write_skip_reason: reason.to_s) }
  }
end