Method: YARD::Tags::ParseDirective#call

Defined in:
lib/yard/tags/directives.rb

#callObject

Since:

  • 0.8.0


518
519
520
521
522
523
524
525
526
527
528
529
530
531
# File 'lib/yard/tags/directives.rb', line 518

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