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