Class: Asciidoctor::DocTest::Generator
- Inherits:
-
Object
- Object
- Asciidoctor::DocTest::Generator
- Defined in:
- lib/asciidoctor/doctest/generator.rb
Instance Method Summary collapse
-
#generate!(pattern: '*:*', rewrite: false) ⇒ Object
Generates missing, or rewrite existing output examples from the input examples converted using the
converter
. -
#initialize(input_suite, output_suite, converter, io = $stdout) ⇒ Generator
constructor
A new instance of Generator.
Constructor Details
#initialize(input_suite, output_suite, converter, io = $stdout) ⇒ Generator
Returns a new instance of Generator.
24 25 26 27 28 29 |
# File 'lib/asciidoctor/doctest/generator.rb', line 24 def initialize(input_suite, output_suite, converter, io = $stdout) @input_suite = input_suite @output_suite = output_suite @converter = converter @io = io end |
Instance Method Details
#generate!(pattern: '*:*', rewrite: false) ⇒ Object
Generates missing, or rewrite existing output examples from the input examples converted using the converter
.
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/asciidoctor/doctest/generator.rb', line 41 def generate!(pattern: '*:*', rewrite: false) updated = [] @input_suite.pair_with(@output_suite).each do |input, output| next unless input.name_match? pattern log = ->(msg, color = :default) do @io << " --> #{(msg % input.name).color(color)}\n" if @io end if input.empty? log["Unknown %s, doesn't exist in input examples!"] else actual, expected = @converter.convert_examples(input, output) generated = output.dup.tap { |ex| ex.content = actual } if output.empty? log['Generating %s', :magenta] updated << generated elsif actual == expected log['Unchanged %s', :green] elsif rewrite log['Rewriting %s', :red] updated << generated else log['Skipping %s', :yellow] end end end @output_suite.update_examples updated unless updated.empty? end |