Sha256: 6831942cf5b0dcb965ffe2b00b885695818d532537e66f5686384dee3ab302f4

Contents?: true

Size: 1.19 KB

Versions: 8

Compression:

Stored size: 1.19 KB

Contents

# 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
    '<a href="%s">%s %s</a>' % [ 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

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
fdoc-0.3.0 lib/fdoc/presenters/service_presenter.rb
fdoc-0.2.7 lib/fdoc/presenters/service_presenter.rb
fdoc-0.2.6 lib/fdoc/presenters/service_presenter.rb
fdoc-0.2.5 lib/fdoc/presenters/service_presenter.rb
fdoc-0.2.4 lib/fdoc/presenters/service_presenter.rb
fdoc-0.2.3 lib/fdoc/presenters/service_presenter.rb
fdoc-0.2.2 lib/fdoc/presenters/service_presenter.rb
fdoc-0.2.1 lib/fdoc/presenters/service_presenter.rb