class YARD::Tags::Tag

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')

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) click to toggle source

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

# File lib/yard/tags/tag.rb, line 44
def initialize(tag_name, text, types = nil, name = nil)
  @tag_name = tag_name.to_s
  @text = text
  @name = name
  @types = (types ? [types].flatten.compact : nil)
end

Public Instance Methods

explain_types() click to toggle source

Provides a plain English summary of the type specification, or nil if no types are provided or parseable.

@return [String] a plain English description of the associated types @return [nil] if no types are provided or not parseable

# File lib/yard/tags/tag.rb, line 65
def explain_types
  return nil if !types || types.empty?
  TypesExplainer.explain(*types)
end
type() click to toggle source

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

# File lib/yard/tags/tag.rb, line 56
def type
  types.first
end