Class: YARD::Tags::AttributeDirective

Inherits:
MethodDirective show all
Defined in:
lib/yard/tags/directives.rb

Overview

Note:

For backwards compatibility support, you do not need to indent the attribute’s docstring text. If an @!attribute directive is seen with no indented block, the entire docstring is used as the new attribute’s docstring text.

Defines an attribute with a given name, using indented block data as the attribute’s docstring. If the type specifier is supplied with “r”, “w”, or “rw”, the attribute is made readonly, writeonly or readwrite respectively. A readwrite attribute is the default, if no type is specified. The comment containing this directive does not need to be attached to any source, but if it is, that source code will be used as the method’s source.

To define a regular method, see @!method

Examples:

Defining a simple readonly attribute

# @!attribute [r] count
#   @return [Fixnum] the size of the list

Defining a simple readwrite attribute

# @!attribute name
#   @return [String] the name of the user

See Also:

Since:

  • 0.7.0

Parser callbacks collapse

Constructor Details

This class inherits a constructor from YARD::Tags::Directive

Instance Method Details

#after_parseObject

Since:

  • 0.7.0



447
448
449
450
451
# File 'lib/yard/tags/directives.rb', line 447

def after_parse
  return unless handler
  use_indented_text
  create_attribute_data(create_object)
end

#method_nameObject (protected)

Since:

  • 0.7.0



455
456
457
458
459
# File 'lib/yard/tags/directives.rb', line 455

def method_name
  name = sanitized_tag_signature || handler.call_params.first
  name += '=' unless readable?
  name
end

#method_signatureObject (protected)

Since:

  • 0.7.0



461
462
463
464
465
466
467
# File 'lib/yard/tags/directives.rb', line 461

def method_signature
  if readable?
    "def #{method_name}"
  else
    "def #{method_name}(value)"
  end
end