Skip to content

Fix error when docsting is just only @option#1515

Merged
lsegal merged 1 commit intolsegal:mainfrom
ksss:fix-docsting-parse-error
Aug 26, 2024
Merged

Fix error when docsting is just only @option#1515
lsegal merged 1 commit intolsegal:mainfrom
ksss:fix-docsting-parse-error

Conversation

@ksss
Copy link
Copy Markdown
Contributor

@ksss ksss commented Oct 9, 2023

Description

Running yardoc on the following Ruby code will result in an error.

# t.rb
class Foo
  # @option
  def m
  end
end
$ bin/yardoc t.rb
[error]: Unhandled exception in YARD::Handlers::Ruby::MethodHandler:
  in `t.rb`:3:

	3: def m

[error]: NoMethodError: undefined method `length' for nil:NilClass
[error]: Stack trace:
	/Users/yuki.kurihara/src/github.com/ksss/yard/lib/yard/tags/default_factory.rb:147:in `extract_types_and_name_from_text_unstripped'
	/Users/yuki.kurihara/src/github.com/ksss/yard/lib/yard/tags/default_factory.rb:130:in `extract_types_and_name_from_text'
	/Users/yuki.kurihara/src/github.com/ksss/yard/lib/yard/tags/default_factory.rb:79:in `parse_tag_with_types_name_and_default'
	/Users/yuki.kurihara/src/github.com/ksss/yard/lib/yard/tags/default_factory.rb:91:in `parse_tag_with_options'
	/Users/yuki.kurihara/src/github.com/ksss/yard/lib/yard/tags/library.rb:237:in `send_to_factory'
	/Users/yuki.kurihara/src/github.com/ksss/yard/lib/yard/tags/library.rb:169:in `option_tag'

This problem is seen only with @option and not with other major tags.

I presume that this is probably due to the fact that if text is "" in the following code, the result will be [], creating a text == nil condition when retrieved.

text.strip.split(/\s+/, 2)

If the Docstring is only "@param", text is still "".
To correct the problem, I now treat text as "" when it is nil.

Completed Tasks

  • I have read the Contributing Guide.
  • The pull request is complete (implemented / written).
  • Git commits have been cleaned up (squash WIP / revert commits).
  • I wrote tests and ran bundle exec rake locally (if code is attached to PR).

@lsegal lsegal merged commit dd01e86 into lsegal:main Aug 26, 2024
@lsegal
Copy link
Copy Markdown
Owner

lsegal commented Aug 26, 2024

Sorry for the delay, but thank you for the contribution!

@ksss ksss deleted the fix-docsting-parse-error branch August 26, 2024 14:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants