Sha256: a19ca85894473e988cfacf4757190e854cd180754ae478a9b3d8a31595869fae

Contents?: true

Size: 1.21 KB

Versions: 15

Compression:

Stored size: 1.21 KB

Contents

require "jsduck/tag/tag"
require "jsduck/logger"

module JsDuck::Tag
  class Fires < Tag
    def initialize
      @pattern = "fires"
      @tagname = :fires
      @repeatable = true
      @html_position = POS_FIRES
    end

    # @fires eventname
    def parse_doc(p, pos)
      {:tagname => :fires, :events => ident_list(p)}
    end

    # matches <ident> <ident> ... until line end
    def ident_list(p)
      list = []
      while ident = p.hw.ident
        list << ident
      end
      list
    end

    def process_doc(h, tags, pos)
      h[:fires] = tags.map {|t| t[:events] }.flatten
    end

    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

    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
  end
end

Version data entries

15 entries across 15 versions & 3 rubygems

Version Path
solvas-jsduck-6.0.0.30539 lib/jsduck/tag/fires.rb
solvas-jsduck-6.0.0.9571 lib/jsduck/tag/fires.rb
solvas-jsduck-6.0.0.6154 lib/jsduck/tag/fires.rb
solvas-jsduck-6.0.0.4021 lib/jsduck/tag/fires.rb
solvas-jsduck-6.0.0.2554 lib/jsduck/tag/fires.rb
solvas-jsduck-6.0.0.1891 lib/jsduck/tag/fires.rb
solvas-jsduck-6.0.0.beta.1888 lib/jsduck/tag/fires.rb
jsduck-troopjs-0.0.1 lib/jsduck/tag/fires.rb
jsduck-6.0.0beta lib/jsduck/tag/fires.rb
jsduck-5.3.4 lib/jsduck/tag/fires.rb
jsduck-5.3.3 lib/jsduck/tag/fires.rb
jsduck-5.3.2 lib/jsduck/tag/fires.rb
jsduck-5.3.1 lib/jsduck/tag/fires.rb
jsduck-5.3.0 lib/jsduck/tag/fires.rb
jsduck-5.2.0 lib/jsduck/tag/fires.rb