Class: YARD::Tags::ParseDirective
Relationships & Source Files | |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
Directive
|
|
Instance Chain:
self,
Directive
|
|
Inherits: |
YARD::Tags::Directive
|
Defined in: | lib/yard/tags/directives.rb |
Overview
Parses a block of code as if it were present in the source file at that
location. This directive is useful if a class has dynamic meta-programmed
behaviour that cannot be recognized by ::YARD
.
You can specify the language of the code block using the types specification list. By default, the code language is "ruby".
Parser callbacks
Class Method Summary
Instance Attribute Summary
Directive
- Inherited
#expanded_text | Set this field to replace the directive definition inside of a docstring with arbitrary text. |
#handler, #object, #tag |
Instance Method Summary
Directive
- Inherited
#after_parse | Called after parsing all directives and tags in the docstring. |
#call | Called when processing the directive. |
Constructor Details
This class inherits a constructor from YARD::Tags::Directive
Instance Method Details
#call
# File 'lib/yard/tags/directives.rb', line 545
def call lang = tag.types ? tag.types.first.to_sym : (handler ? handler.parser.parser_type : :ruby) if handler && lang == handler.parser.parser_type pclass = Parser::SourceParser.parser_types[handler.parser.parser_type] pobj = pclass.new(tag.text, handler.parser.file) pobj.parse handler.parser.process(pobj.enumerator) else # initialize a new parse chain src_parser = Parser::SourceParser.new(lang, handler ? handler.globals : nil) src_parser.file = handler.parser.file if handler src_parser.parse(StringIO.new(tag.text)) end end