Class: AbideDevUtils::CEM::Generate::Reference::MarkdownGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/abide_dev_utils/cem/generate/reference.rb

Overview

Generates a markdown reference doc

Instance Method Summary collapse

Constructor Details

#initialize(benchmarks) ⇒ MarkdownGenerator

Returns a new instance of MarkdownGenerator.



58
59
60
61
# File 'lib/abide_dev_utils/cem/generate/reference.rb', line 58

def initialize(benchmarks)
  @benchmarks = benchmarks
  @md = AbideDevUtils::Markdown.new('REFERENCE.md')
end

Instance Method Details

#generate(doc_title = 'Reference') ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/abide_dev_utils/cem/generate/reference.rb', line 63

def generate(doc_title = 'Reference')
  md.add_title(doc_title)
  benchmarks.each do |benchmark|
    md.add_h1(benchmark.title_key)
    benchmark.rules.each do |title, rule|
      md.add_h2("#{rule['number']} #{title}")
      md.add_ul('Parameters:')
      rule['params'].each do |p|
        md.add_ul("#{md.code(p[:name])} - [ #{md.code(p[:type])} ] - #{md.italic('Default:')} #{md.code(p[:default])}", indent: 1)
      end
      md.add_ul('Config Example:')
      example = config_example(benchmark.module_name, title, rule['params'])
      md.add_code_block(example, language: 'yaml')
      md.add_ul('Supported Levels:')
      rule['level'].each do |l|
        md.add_ul(md.code(l), indent: 1)
      end
      md.add_ul('Supported Profiles:')
      rule['profile'].each do |l|
        md.add_ul(md.code(l), indent: 1)
      end
      md.add_ul('Alternate Config IDs:')
      rule['alternate_ids'].each do |l|
        md.add_ul(md.code(l), indent: 1)
      end
      md.add_ul("Resource: #{md.code(rule['resource'].capitalize)}")
    end
  end
  md.to_file
end