Sha256: c12c0cac70235f107e583d9451d193e1789fd5ca1ae8e46c3d2255e50069e708

Contents?: true

Size: 1.29 KB

Versions: 16

Compression:

Stored size: 1.29 KB

Contents

require 'jsduck/tag_registry'

module JsDuck
  module Render

    # Performs the rendering of tags.
    class Tags
      # Renders tags of a particular section.
      #
      # Takes member or class hash.
      # Returns array of rendered HTML.
      def self.render(member)
        renderers.map do |tag|
          if member[tag.tagname]
            tag.to_html(member)
          else
            nil
          end
        end
      end

      # Returns tags for rendering HTML, sorted in the order they should
      # appear in final output. Sorting order is determined by the
      # numeric :html_position field.
      def self.renderers
        if !@renderers
          @renderers = TagRegistry.tags.find_all(&:html_position)
          @renderers.sort! {|a, b| a.html_position <=> b.html_position }
        end

        @renderers
      end

      # Renders the signatures for a class member.
      # Returns a string.
      def self.render_signature(member)
        html = []
        TagRegistry.signatures.each do |s|
          if member[s[:tagname]]
            title = s[:tooltip] ? "title='#{s[:tooltip]}'" : ""
            html << "<span class='#{s[:tagname]}' #{title}>#{s[:long]}</span>"
          end
        end
        '<span class="signature">' + html.join + "</span>"
      end

    end

  end
end

Version data entries

16 entries across 16 versions & 3 rubygems

Version Path
solvas-jsduck-6.0.0.30539 lib/jsduck/render/tags.rb
solvas-jsduck-6.0.0.9571 lib/jsduck/render/tags.rb
solvas-jsduck-6.0.0.6154 lib/jsduck/render/tags.rb
solvas-jsduck-6.0.0.4021 lib/jsduck/render/tags.rb
solvas-jsduck-6.0.0.2554 lib/jsduck/render/tags.rb
solvas-jsduck-6.0.0.1891 lib/jsduck/render/tags.rb
solvas-jsduck-6.0.0.beta.1888 lib/jsduck/render/tags.rb
jsduck-troopjs-0.0.10 lib/jsduck/render/tags.rb
jsduck-troopjs-0.0.9 lib/jsduck/render/tags.rb
jsduck-troopjs-0.0.8 lib/jsduck/render/tags.rb
jsduck-troopjs-0.0.7 lib/jsduck/render/tags.rb
jsduck-troopjs-0.0.5 lib/jsduck/render/tags.rb
jsduck-troopjs-0.0.4 lib/jsduck/render/tags.rb
jsduck-troopjs-0.0.3 lib/jsduck/render/tags.rb
jsduck-troopjs-0.0.1 lib/jsduck/render/tags.rb
jsduck-6.0.0beta lib/jsduck/render/tags.rb