Commit 72055801 authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Extract MetaTagRenderer class.

Encapsulate both full metadata rendering and signature rendering inside
it.
parent 292d4752
Loading
Loading
Loading
Loading
+34 −0
Original line number Diff line number Diff line
require 'jsduck/meta_tag_registry'

module JsDuck

  # Performs the rendering of meta tags.
  class MetaTagRenderer

    # Renders full meta tags of a particular section.
    #
    # Returns array of rendered HTML or nil if no meta data.
    def self.render(meta_data, position)
      return if meta_data.size == 0

      MetaTagRegistry.instance.tags(position).map do |tag|
        meta_data[tag.key]
      end
    end

    # Renders the meta-tag signatures for a class member.
    # Returns a string.
    def self.render_signature(member)
      html = []
      MetaTagRegistry.instance.signatures.each do |s|
        if member[:meta][s[:key]]
          title = s[:tooltip] ? "title='#{s[:tooltip]}'" : ""
          html << "<strong class='#{s[:key]} signature' #{title}>#{s[:long]}</strong>"
        end
      end
      html.join
    end

  end

end
+2 −4
Original line number Diff line number Diff line
require 'jsduck/meta_tag_registry'
require 'jsduck/html'
require 'jsduck/meta_tag_renderer'
require 'jsduck/signature_renderer'

module JsDuck
@@ -62,9 +62,7 @@ module JsDuck
    end

    def render_meta_data(meta_data, position)
      return if meta_data.size == 0

      MetaTagRegistry.instance.tags(position).map {|tag| meta_data[tag.key] }
      MetaTagRenderer.render(meta_data, position)
    end

    def render_sidebar
+2 −9
Original line number Diff line number Diff line
require 'jsduck/meta_tag_registry'
require 'jsduck/meta_tag_renderer'

module JsDuck

@@ -84,14 +84,7 @@ module JsDuck
    end

    def render_meta
      html = ""
      MetaTagRegistry.instance.signatures.each do |s|
        if @m[:meta][s[:key]]
          title = s[:tooltip] ? "title='#{s[:tooltip]}'" : ""
          html += "<strong class='#{s[:key]} signature' #{title}>#{s[:long]}</strong>"
        end
      end
      html
      MetaTagRenderer.render_signature(@m)
    end

  end