Module: HeapScope::Catalog
- Defined in:
- lib/heapscope/catalog.rb
Overview
Catalog of diagnostic codes for CLI / docs generation.
Class Method Summary collapse
- .codes ⇒ Object
- .explain(code) ⇒ Object
- .lookup(code) ⇒ Object
- .normalize_code(code) ⇒ Object
- .to_text ⇒ Object
Class Method Details
.codes ⇒ Object
8 9 10 |
# File 'lib/heapscope/catalog.rb', line 8 def codes Diagnostics::CODES.values end |
.explain(code) ⇒ Object
17 18 19 20 21 22 23 24 25 |
# File 'lib/heapscope/catalog.rb', line 17 def explain(code) = lookup(code) raise ArgumentError, "Unknown diagnostic code: #{code}" unless doc = encyclopedia_text() return doc if doc fallback_text() end |
.lookup(code) ⇒ Object
12 13 14 15 |
# File 'lib/heapscope/catalog.rb', line 12 def lookup(code) key = normalize_code(code) Diagnostics::CODES[key] end |
.normalize_code(code) ⇒ Object
38 39 40 41 42 43 44 45 |
# File 'lib/heapscope/catalog.rb', line 38 def normalize_code(code) raw = code.to_s.strip.upcase return raw if Diagnostics::CODES.key?(raw) return "HS#{raw}" if raw.match?(/\A\d{3}\z/) return format("HS%03d", raw.to_i) if raw.match?(/\A\d+\z/) raw end |
.to_text ⇒ Object
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/heapscope/catalog.rb', line 27 def to_text lines = [Branding., "", "Diagnostic codes", ""] codes.each do |c| lines << "#{c[:id]} #{c[:name]}" lines << " #{c[:title]} (default severity: #{c[:default_severity]})" lines << "" end lines << Branding.funding_lines.join("\n") lines.join("\n") end |