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

new(tag_name, text, types = nil, name = nil)

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

type()

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]