Module: DocGen
- Defined in:
- lib/doc_gen/parser.rb,
lib/doc_gen/renderer.rb
Overview
DocGen: Prism-based parser and Jekyll Markdown renderer for test documentation.
Usage:
require_relative 'lib/doc_gen/parser'
require_relative 'lib/doc_gen/renderer'
contexts = DocGen::Parser.parse_files(Dir['test/**/*_spec.rb'])
DocGen::Renderer.render(contexts, output_dir: 'docs/tests')
Defined Under Namespace
Classes: Context, NamespaceBuilder, Parser, Renderer, Spec
Class Method Summary collapse
-
.humanize(name) ⇒ Object
Convert a raw describe name to a human-readable title.
-
.slugify(name) ⇒ Object
Convert a name to a URL/filesystem-friendly slug.
Class Method Details
.humanize(name) ⇒ Object
Convert a raw describe name to a human-readable title.
- Takes the last
-
segment and splits CamelCase into words.
Examples:
'Site::Tlc::DetectorLogics' => 'Detector Logics'
'Site::Core' => 'Core'
'Detector Logic' => 'Detector Logic' (already readable)
88 89 90 91 92 |
# File 'lib/doc_gen/parser.rb', line 88 def self.humanize(name) segment = name.split('::').last || name segment.gsub(/([a-z\d])([A-Z])/, '\1 \2') .gsub(/([A-Z]+)([A-Z][a-z])/, '\1 \2') end |
.slugify(name) ⇒ Object
Convert a name to a URL/filesystem-friendly slug.
74 75 76 77 78 79 80 |
# File 'lib/doc_gen/parser.rb', line 74 def self.slugify(name) name.gsub('::', '_') .gsub(/[^a-zA-Z0-9_]+/, '_') .gsub(/_+/, '_') .gsub(/\A_+|_+\z/, '') .downcase end |