Class: YARD::Tags::AttributeDirective
- Inherits:
-
MethodDirective
- Object
- Directive
- MethodDirective
- YARD::Tags::AttributeDirective
- Defined in:
- lib/yard/tags/directives.rb
Overview
This directive should only be used if there is no explicit attr_*
declaration for the attribute in any source files (i.e., the attribute is declared dynamically via meta-programming). In all other cases, add documentation to the attribute declaration itself.
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
Parser callbacks collapse
- #after_parse ⇒ Object
- #method_name ⇒ Object protected
- #method_signature ⇒ Object protected
Constructor Details
This class inherits a constructor from YARD::Tags::Directive
Instance Method Details
#after_parse ⇒ Object
455 456 457 458 459 |
# File 'lib/yard/tags/directives.rb', line 455 def after_parse return unless handler use_indented_text create_attribute_data(create_object) end |
#method_name ⇒ Object (protected)
463 464 465 466 467 |
# File 'lib/yard/tags/directives.rb', line 463 def method_name name = sanitized_tag_signature || handler.call_params.first name += '=' unless readable? name end |
#method_signature ⇒ Object (protected)
469 470 471 472 473 474 475 |
# File 'lib/yard/tags/directives.rb', line 469 def method_signature if readable? "def #{method_name}" else "def #{method_name}(value)" end end |