Class: Rigor::SigGen::Renderer
- Inherits:
-
Object
- Object
- Rigor::SigGen::Renderer
- Defined in:
- lib/rigor/sig_gen/renderer.rb
Overview
Output formatter for rigor sig-gen.
Supports three modes:
:print(default) — RBS skeletons grouped by source file and class declaration, ready for the user to paste intosig/<path>.rbs.:diff— a unified-style diff comparing the existing RBS spelling (if any) against the inferred spelling. The MVP renders a minimal "- declared / + inferred" block; full per-file diffing arrives with slice 2's--writemerge.:json— machine-readable payload with the same classification table as:print.
Instance Method Summary collapse
-
#initialize(out:) ⇒ Renderer
constructor
A new instance of Renderer.
- #render(candidates:, mode:, format:, selection:) ⇒ Object
-
#render_write(results:, format:) ⇒ Object
Renders the per-source-file outcomes of a
--writerun.
Constructor Details
#initialize(out:) ⇒ Renderer
Returns a new instance of Renderer.
19 20 21 |
# File 'lib/rigor/sig_gen/renderer.rb', line 19 def initialize(out:) @out = out end |
Instance Method Details
#render(candidates:, mode:, format:, selection:) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/rigor/sig_gen/renderer.rb', line 29 def render(candidates:, mode:, format:, selection:) filtered = filter(candidates, selection) case format when "json" then render_json(filtered) when "text" mode == :diff ? render_diff(filtered) : render_print(filtered) else raise ArgumentError, "unsupported format: #{format}" end end |
#render_write(results:, format:) ⇒ Object
Renders the per-source-file outcomes of a --write run. Distinct from #render because the write
path's reporting surface is action-oriented (created / updated / skipped) rather than candidate-oriented.
108 109 110 111 112 113 114 |
# File 'lib/rigor/sig_gen/renderer.rb', line 108 def render_write(results:, format:) case format when "json" then render_write_json(results) when "text" then render_write_text(results) else raise ArgumentError, "unsupported format: #{format}" end end |