Method: Fdoc::SchemaPresenter#to_markdown

Defined in:
lib/fdoc/presenters/schema_presenter.rb

#to_markdown(prefix = "") ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/fdoc/presenters/schema_presenter.rb', line 61

def to_markdown(prefix = "")
  md = StringIO.new
  md << 'Deprecated' if deprecated?
  md << "\n#{@schema["description"]}"
  md << "\n#{prefix}* __Required__: #{required?}" if nested?
  md << "\n#{prefix}* __Type__: #{type}" if type
  md << "\n#{prefix}* __Format__: #{format}" if format
  md << "\n#{prefix}* __Example__: <tt>#{example.to_markdown}</tt>" if example
  md << "\n#{@schema['enum']}"
  (@schema.keys - Fdoc::SchemaPresenter::FORMATTED_KEYS).each do |key|
    md << "\n#{prefix}* %{key} %{@schema[key]}"
  end
  if items = @schema["items"]
    md << "\n#{prefix}* Items"
    if items.kind_of? Array
      item.compact.each do |item|
        md << Fdoc::SchemaPresenter.new(item, options.merge(:nested => true)).to_markdown(prefix + "\t")
      end
    else
      md << Fdoc::SchemaPresenter.new(@schema["items"], options.merge(:nested => true)).to_markdown(prefix + "\t")
    end
  end
  if properties = @schema["properties"]
    properties.each do |key, property|
      next if property.nil?
      md << "\n#{prefix}* __#{key}__:"
      md << Fdoc::SchemaPresenter.new(property, options.merge(:nested => true)).to_markdown(prefix + "\t")
    end
  end
  md.string
end