class JsDuck::Inline::LinkRenderer

Renders HTML link to class or member.

Attributes

relations[R]

Access to relations object, used by Inline::Link and Inline::AutoLink.

Public Class Methods

new(relations={}, opts=OpenStruct.new) click to toggle source
# File lib/jsduck/inline/link_renderer.rb, line 13
def initialize(relations={}, opts=OpenStruct.new)
  @relations = relations

  # Template HTML that replaces {@link Class#member anchor text}.
  # Can contain placeholders:
  #
  # %c - full class name (e.g. "Ext.Panel")
  # %m - class member name prefixed with member type (e.g. "method-urlEncode")
  # %# - inserts "#" if member name present
  # %- - inserts "-" if member name present
  # %a - anchor text for link
  @tpl = opts.link || '<a href="%c%#%m">%a</a>'
end

Public Instance Methods

find_members(cls, query) click to toggle source
# File lib/jsduck/inline/link_renderer.rb, line 63
def find_members(cls, query)
  @relations[cls] ? @relations[cls].find_members(query) : []
end
get_matching_member(cls, query) click to toggle source
# File lib/jsduck/inline/link_renderer.rb, line 53
def get_matching_member(cls, query)
  ms = find_members(cls, query)
  if ms.length > 1
    instance_ms = ms.find_all {|m| !m[:static] }
    instance_ms.length > 0 ? instance_ms[0] : ms.find_all {|m| m[:static] }[0]
  else
    ms[0]
  end
end