module YARD::Templates::Helpers::HtmlHelper

def url_for(obj, anchor = nil, relative = true)

Returns:
  • (String) - the URL location of the object

Parameters:
  • relative (Boolean) -- use a relative or absolute link
  • anchor (String) -- the anchor to link to
  • obj (String, CodeObjects::Base) -- the object (or object path) to link to
def url_for(obj, anchor = nil, relative = true)
  link = nil
  return link unless serializer
  return link if obj.is_a?(CodeObjects::Base) && run_verifier([obj]).empty?
  if obj.is_a?(CodeObjects::Base) && !obj.is_a?(CodeObjects::NamespaceObject)
    # If the obj is not a namespace obj make it the anchor.
    anchor = obj
    obj = obj.namespace
  end
  objpath = serializer.serialized_path(obj)
  return link unless objpath
  relative = false if object == Registry.root
  if relative
    fromobj = object
    if object.is_a?(CodeObjects::Base) &&
       !object.is_a?(CodeObjects::NamespaceObject)
      fromobj = owner
    end
    from = serializer.serialized_path(fromobj)
    link = File.relative_path(from, objpath)
  else
    link = objpath
  end
  link + (anchor ? '#' + urlencode(anchor_for(anchor)) : '')
end