Class: Ariadne::Yard::DryInitializer::OptionHandler

Inherits:
YARD::Handlers::Ruby::Base
  • Object
show all
Includes:
CommonHandler
Defined in:
lib/ariadne/yard/dry_initializer/option_handler.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#processObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/ariadne/yard/dry_initializer/option_handler.rb', line 13

def process
  super

  parsed_docstring = YARD::DocstringParser.new.parse(statement.docstring)
  existing_tag = parsed_docstring.tags.find { |t| t.name == definition_name }

  # missing documentation
  if existing_tag.nil?

  else
    defaults = existing_tag.defaults
    defaults = defaults.join if defaults

    # only docstring has complete description past newlines
    docstring = statement.docstring.tr("\n", " ")

    # strip out everything except description
    docstring = docstring[docstring.index(existing_tag.text)..]

    constructor.add_tag(YARD::Tags::DefaultTag.new(:param, docstring, existing_tag.types, existing_tag.name, defaults))
  end
end