class YARD::Dry::Initializer::OptionHandler

Public Instance Methods

process() click to toggle source
# 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