lib/rtfdoc.rb in rtfdoc-0.1.1 vs lib/rtfdoc.rb in rtfdoc-0.1.2

- old
+ new

@@ -89,18 +89,27 @@ def block_code(code, language) if language == 'attributes' || language == 'parameters' AttributesComponent.new(code, language).output elsif language == 'response' - <<-HTML - <div class="section-response"> - <div class="response-topbar">RESPONSE</div> - <pre><code>#{rouge_formatter.format(rouge_lexer.lex(code.strip))}</code></pre> - </div> - HTML + format_code('RESPONSE', code) + elsif language == 'title_and_code' + title, _code = code.split("\n", 2) + title ||= 'RESPONSE' + format_code(title, _code) end end + + private def format_code(title, code) + <<-HTML + <div class="section-response"> + <div class="response-topbar">#{title}</div> + <pre><code>#{rouge_formatter.format(rouge_lexer.lex(code.strip))}</code></pre> + </div> + HTML + end + end class Template def initialize(sections) @content = sections.map(&:output).join @@ -155,11 +164,11 @@ idx = raw_content.index('---', 4) raise 'bad format' unless idx parse_metadata(YAML.load(raw_content.slice!(0, idx + 3))) end - raise 'missing metadata' if resource && !@path && !@method + raise 'missing metadata' if resource && !meta_section? && !@path && !@method @content, @example = raw_content.split('$$$') end def id @@ -177,20 +186,31 @@ def menu_output "<li>#{anchor(menu_title)}</li>" end def signature - sig = <<-HTML.strip! + anchor(sig) + end + + def example_to_html + res = super + @resource && res && !meta_section? ? res.sub('RESPONSE', sig) : res + end + + private + + def sig + @sig ||= <<-HTML.strip! <div class="endpoint-def"> <div class="method method__#{method.downcase}">#{method.upcase}</div> <div class="path">#{path}</div> </div> HTML - - anchor(sig) end - private + def meta_section? + name == 'desc' || name == 'object' + end def menu_title @menu_title || name.capitalize end