class AppMap::Swagger::MarkdownDescriptions
Transform description fields into Markdown.
Public Class Methods
new(swagger_yaml)
click to toggle source
# File lib/appmap/swagger/markdown_descriptions.rb, line 10 def initialize(swagger_yaml) @swagger_yaml = swagger_yaml end
Public Instance Methods
converter()
click to toggle source
# File lib/appmap/swagger/markdown_descriptions.rb, line 14 def converter method(:rdoc_to_markdown) end
perform()
click to toggle source
# File lib/appmap/swagger/markdown_descriptions.rb, line 18 def perform to_markdown = lambda do |obj| return obj.each(&to_markdown) if obj.is_a?(Array) return unless obj.is_a?(Hash) description = obj['description'] obj['description'] = converter.(description) if description obj.reject { |k,v| k == 'properties' }.each_value(&to_markdown) obj end to_markdown.(@swagger_yaml.deep_dup) end
Protected Instance Methods
rdoc_to_markdown(comment)
click to toggle source
# File lib/appmap/swagger/markdown_descriptions.rb, line 36 def rdoc_to_markdown(comment) # Strip tags comment = comment.split("\n").reject { |line| line =~ /^\s*@/ }.join("\n") converter = ::RDoc::Markup::ToHtml.new(::RDoc::Options.new) html = converter.convert(comment).strip ::ReverseMarkdown.convert(html).strip end