class JsDuck::Tag::Fires

Public Class Methods

new() click to toggle source
# File lib/jsduck/tag/fires.rb, line 6
def initialize
  @pattern = "fires"
  @tagname = :fires
  @repeatable = true
  @html_position = POS_FIRES
end

Public Instance Methods

format(m, formatter) click to toggle source
# File lib/jsduck/tag/fires.rb, line 31
def format(m, formatter)
  cls = formatter.relations[m[:owner]]

  m[:fires] = m[:fires].map do |name|
    if cls.find_members({:tagname => :event, :name => name}).length > 0
      formatter.link(m[:owner], name, name, :event)
    else
      JsDuck::Logger.warn(:fires, "@fires references unknown event: #{name}", m[:files][0])
      name
    end
  end
end
ident_list(p) click to toggle source

matches <ident> <ident> … until line end

# File lib/jsduck/tag/fires.rb, line 19
def ident_list(p)
  list = []
  while ident = p.hw.ident
    list << ident
  end
  list
end
parse_doc(p, pos) click to toggle source

@fires eventname

# File lib/jsduck/tag/fires.rb, line 14
def parse_doc(p, pos)
  {:tagname => :fires, :events => ident_list(p)}
end
process_doc(h, tags, pos) click to toggle source
# File lib/jsduck/tag/fires.rb, line 27
def process_doc(h, tags, pos)
  h[:fires] = tags.map {|t| t[:events] }.flatten
end
to_html(m) click to toggle source
# File lib/jsduck/tag/fires.rb, line 44
def to_html(m)
  return unless m[:fires] && m[:fires].length > 0

  return [
    "<h3 class='pa'>Fires</h3>",
    "<ul>",
      m[:fires].map {|e| "<li>#{e}</li>" },
    "</ul>",
  ]
end