# An HtmlPresenter for Fdoc::Service class Fdoc::ServicePresenter < Fdoc::HtmlPresenter attr_reader :service def initialize(service, options = {}) super(options) @service = service end def to_html render_erb('service.html.erb') end def name_as_link(options = {}) path = service.meta_service ? index_path(slug_name) : index_path '%s %s' % [ path, options[:prefix], service.name ] end def slug_name service.name.downcase.gsub(/[ \/]/, '_') end def url(extension = ".html") '%s-%s%s' % [ @endpoint.path, @endpoint.verb, extension ] end def endpoints if !@endpoints @endpoints = [] prefix = nil service.endpoints.sort_by(&:endpoint_path).each do |endpoint| presenter = Fdoc::EndpointPresenter.new(endpoint, options) presenter.service_presenter = self presenter current_prefix = presenter.prefix @endpoints << [] if prefix != current_prefix @endpoints.last << presenter prefix = current_prefix end end @endpoints end def description render_markdown(service.description) end def discussion render_markdown(service.discussion) end end