Class: YARD::Tags::ParseDirective
- 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 collapse
Constructor Details
This class inherits a constructor from YARD::Tags::Directive
Instance Method Details
#call ⇒ Object
531 532 533 534 535 536 537 538 539 540 541 542 543 544 |
# File 'lib/yard/tags/directives.rb', line 531 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 |