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