class Fdoc::MetaServicePresenter

BasePresenter for Fdoc::MetaService

Attributes

meta_service[R]

Public Class Methods

new(meta_service, options = {}) click to toggle source
Calls superclass method Fdoc::BasePresenter::new
# File lib/fdoc/presenters/meta_service_presenter.rb, line 8
def initialize(meta_service, options = {})
  super(options)
  @meta_service = meta_service
end

Public Instance Methods

description(options = {:render => true}) click to toggle source
# File lib/fdoc/presenters/meta_service_presenter.rb, line 52
def description(options = {:render => true})
  options[:render] ? render_markdown(meta_service.description) : meta_service.description
end
discussion(options = {:render => true}) click to toggle source
# File lib/fdoc/presenters/meta_service_presenter.rb, line 56
def discussion(options = {:render => true})
  options[:render] ? render_markdown(meta_service.discussion) : meta_service.discussion
end
endpoints() click to toggle source
# File lib/fdoc/presenters/meta_service_presenter.rb, line 33
def endpoints
  if !@endpoints
    @endpoints = []
    prefix = nil

    ungrouped_endpoints.each do |endpoint|
      presenter = presenter_from_endpoint(endpoint)
      current_prefix = presenter.prefix

      @endpoints << [] if prefix != current_prefix
      @endpoints.last << presenter

      prefix = current_prefix
    end
  end

  @endpoints
end
name() click to toggle source
# File lib/fdoc/presenters/meta_service_presenter.rb, line 13
def name
  meta_service.name
end
relative_service_path(service_presenter, file_name = nil) click to toggle source
# File lib/fdoc/presenters/meta_service_presenter.rb, line 60
def relative_service_path(service_presenter, file_name = nil)
  service_path = service_presenter.slug_name
  if file_name
    service_path = File.join(service_path, file_name)
  end
  service_path
end
services() click to toggle source
# File lib/fdoc/presenters/meta_service_presenter.rb, line 25
def services
  @services ||= meta_service.services.
    sort_by(&:name).
    map do |service|
      Fdoc::ServicePresenter.new(service, options)
    end
end
to_html() click to toggle source
# File lib/fdoc/presenters/meta_service_presenter.rb, line 17
def to_html
  render_erb('meta_service.html.erb')
end
to_markdown() click to toggle source
# File lib/fdoc/presenters/meta_service_presenter.rb, line 21
def to_markdown
  render_erb('meta_service.md.erb')
end

Private Instance Methods

presenter_from_endpoint(endpoint) click to toggle source
# File lib/fdoc/presenters/meta_service_presenter.rb, line 77
def presenter_from_endpoint(endpoint)
  service_presenter = Fdoc::ServicePresenter.new(endpoint.service)

  presenter = Fdoc::EndpointPresenter.new(endpoint,
    options.merge(:prefix => (service_presenter.slug_name + "/")))
  presenter.service_presenter = service_presenter
  presenter
end
ungrouped_endpoints() click to toggle source
# File lib/fdoc/presenters/meta_service_presenter.rb, line 70
def ungrouped_endpoints
  meta_service.services.
               map(&:endpoints).
               flatten.
               sort_by(&:endpoint_path)
end