class GrapeMarkdown::Document
Attributes
api_class[R]
document_template[R]
properties_template[R]
Public Class Methods
new(api_class)
click to toggle source
# File lib/grape-markdown/document.rb, line 10 def initialize(api_class) @api_class = api_class @document_template = template_for(:document) @properties_template = template_for(:properties) end
Public Instance Methods
formatted_request_headers()
click to toggle source
# File lib/grape-markdown/document.rb, line 44 def formatted_request_headers formatted_headers(GrapeMarkdown::Configuration.request_headers) end
formatted_response_headers()
click to toggle source
# File lib/grape-markdown/document.rb, line 48 def formatted_response_headers formatted_headers(GrapeMarkdown::Configuration.response_headers) end
generate()
click to toggle source
# File lib/grape-markdown/document.rb, line 16 def generate render(document_template, binding) end
properties_table(resource)
click to toggle source
# File lib/grape-markdown/document.rb, line 40 def properties_table(resource) render(properties_template, resource.route_binding) end
resources()
click to toggle source
# File lib/grape-markdown/document.rb, line 30 def resources @resources ||= begin grouped_routes = routes.group_by(&:route_name).reject do |name, _routes| resource_exclusion.include?(name.parameterize.underscore.to_sym) end grouped_routes.map { |name, routes| Resource.new(name, routes) } end end
routes()
click to toggle source
# File lib/grape-markdown/document.rb, line 24 def routes @routes ||= api_class.routes.map do |route| GrapeMarkdown::Route.new(route) end end
show_request_sample?(route)
click to toggle source
# File lib/grape-markdown/document.rb, line 52 def show_request_sample?(route) %w(PUT POST).include?(route.request_method) end
write()
click to toggle source
# File lib/grape-markdown/document.rb, line 20 def write raise 'Not yet supported' end
Private Instance Methods
formatted_headers(headers)
click to toggle source
# File lib/grape-markdown/document.rb, line 69 def formatted_headers(headers) return '' unless headers.present? spacer = "\n" + (' ' * 12) strings = headers.map do |header| key, value = *header.first "#{key}: #{value}" end " + Headers\n" + spacer + strings.join(spacer) end
render(template, binding = nil)
click to toggle source
# File lib/grape-markdown/document.rb, line 58 def render(template, binding = nil) ERB.new(template, nil, '-').result(binding) end
template_for(name)
click to toggle source
# File lib/grape-markdown/document.rb, line 62 def template_for(name) directory = File.dirname(File.expand_path(__FILE__)) path = File.join(directory, "./templates/#{name}.md.erb") File.read(path) end