Class: YARD::Dry::Initializer::OptionHandler

Inherits:
Handlers::Ruby::Base
  • Object
show all
Includes:
CommonHandler
Defined in:
lib/yard/dry/initializer/option_handler.rb

Instance Method Summary collapse

Instance Method Details

#processObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/yard/dry/initializer/option_handler.rb', line 14

def process
  super

  unless constructor.tags('param').find { |t| t.name == 'options' }
    constructor.parameters << ['**options', nil]
    constructor.add_tag(YARD::Tags::Tag.new(:param, nil, ['Hash'], 'options'))
  end

  existing_tag = constructor.tags('option').find { |t| t.pair.name == definition_name }
  comment = self.comment || existing_tag&.pair&.text
  default = default_string && [default_string] || existing_tag&.pair&.defaults
  option = YARD::Tags::DefaultTag.new(:option, comment, nil, definition_name, default)
  if existing_tag
    existing_tag.pair = option
  else
    constructor.add_tag(YARD::Tags::OptionTag.new(:option, 'options', option))
  end
end