Class YARD::Tags::Tag
In: lib/yard/tags/tag.rb
Parent: Object

Represents a metadata tag value (+@tag+). Tags can have any combination of {types}, {name} and {text}, or none of the above.

@example Programmatic tag creation

  # The following docstring syntax:
  #   @param [String, nil] arg an argument
  #
  # is equivalent to:
  Tag.new(:param, 'an argument', ['String', 'nil'], 'arg')

Methods

new   type  

Attributes

name  [RW]  @return [String] a name associated with the tag
object  [RW]  @return [CodeObjects::Base] the associated object
tag_name  [RW]  @return [String] the name of the tag
text  [RW]  @return [String] the tag text associated with the tag @return [nil] if no tag text is supplied
types  [RW]  @return [Array<String>] a list of types associated with the tag @return [nil] if no types are associated with the tag

Public Class methods

Creates a new tag object with a tag name and text. Optionally, formally declared types and a key name can be specified.

Types are mainly for meta tags that rely on type information, such as param, return, etc.

Key names are for tags that declare meta data for a specific key or name, such as param, raise, etc.

@param [to_s] tag_name the tag name to create the tag for @param [String] text the descriptive text for this tag @param [Array<String>] types optional type list of formally declared types

                               for the tag

@param [String] name optional key name which the tag refers to

Public Instance methods

Convenience method to access the first type specified. This should mainly be used for tags that only specify one type.

@return [String] the first of the list of specified types @see types

[Validate]