Method: YARD::Templates::Helpers::HtmlHelper#url_for

Defined in:
lib/yard/templates/helpers/html_helper.rb

#url_for(obj, anchor = nil, relative = true) ⇒ String

Returns the URL for an object.

Parameters:

  • obj (String, CodeObjects::Base)

    the object (or object path) to link to

  • anchor (String) (defaults to: nil)

    the anchor to link to

  • relative (Boolean) (defaults to: true)

    use a relative or absolute link

Returns:

  • (String)

    the URL location of the object


300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
# File 'lib/yard/templates/helpers/html_helper.rb', line 300

def url_for(obj, anchor = nil, relative = true)
  link = nil
  return link unless serializer

  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

  if relative
    fromobj = object
    if object.is_a?(CodeObjects::Base) &&
        !object.is_a?(CodeObjects::NamespaceObject)
      fromobj = fromobj.namespace
    end

    from = serializer.serialized_path(fromobj)
    link = File.relative_path(from, objpath)
  else
    link = objpath
  end

  link + (anchor ? '#' + urlencode(anchor_for(anchor)) : '')
end