class JsDuck::Tag::Enum

Public Class Methods

new() click to toggle source
# File lib/jsduck/tag/enum.rb, line 5
    def initialize
      @pattern = "enum"
      @tagname = :enum
      @html_position = POS_ENUM
      # Green box
      @css = <<-EOCSS
        .enum-box {
          color: #060;
          background-color: #efe;
          text-align: center;
        }
      EOCSS
    end

Public Instance Methods

parse_doc(p, pos) click to toggle source

@enum {Type} [name=default] …

# File lib/jsduck/tag/enum.rb, line 20
def parse_doc(p, pos)
  enum = p.standard_tag({
      :tagname => :enum,
      :type => true,
      :name => true,
      :default => true,
      :optional => true
    })

  # @enum is a special case of class, so we also generate a class
  # tag with the same name as given for @enum.
  cls = {:tagname => :class, :name => enum[:name]}

  return [cls, enum]
end
process_doc(h, tags, pos) click to toggle source
# File lib/jsduck/tag/enum.rb, line 36
def process_doc(h, tags, pos)
  h[:enum] = {
    :type => tags[0][:type],
    :default => tags[0][:default],
    :doc_only => !!tags[0][:default],
  }
end
to_html(cls) click to toggle source
# File lib/jsduck/tag/enum.rb, line 44
def to_html(cls)
  if cls[:enum][:doc_only]
    first = cls[:members][0] || {:name => 'foo', :default => '"foo"'}
    [
      "<div class='rounded-box enum-box'>",
      "<p><strong>ENUM:</strong> ",
      "This enumeration defines a set of String values. ",
      "It exists primarily for documentation purposes - ",
      "in code use the actual string values like #{first[:default]}, ",
      "don't reference them through this class like #{cls[:name]}.#{first[:name]}.</p>",
      "</div>",
    ]
  else
    [
      "<div class='rounded-box enum-box'>",
      "<p><strong>ENUM:</strong> ",
      "This enumeration defines a set of #{cls[:enum][:type]} values.</p>",
      "</div>",
    ]
  end
end