Class: ReadmeYard::CommentTag

Inherits:
Object
  • Object
show all
Defined in:
lib/readme_yard/comment_tag.rb

Overview

Embed comments

Examples:

# @readme comment

Class Method Summary collapse

Class Method Details

.format_docstring_as_comment(yard_object) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/readme_yard/comment_tag.rb', line 31

def format_docstring_as_comment(yard_object)
  comment = +""
  docstring = yard_object.docstring.all
  docstring.gsub!(named_readme_tag_regex, "")
  docstring.lines.each do |line|
    comment << "#"
    comment << " " unless line[0] == "\n"
    comment << line
  end
  last_line = yard_object.docstring.all.lines.last
  comment << "#" if last_line&.match?(/\n$/)
  comment
end

.format_tag(yard_object, _tag) ⇒ Object

This comment is in the README because @readme comment is below (in the source code).



19
20
21
22
# File 'lib/readme_yard/comment_tag.rb', line 19

def format_tag(yard_object, _tag)
  comment = format_docstring_as_comment(yard_object)
  ExampleTag.format_ruby(comment)
end

.format_yard_object(yard_object) ⇒ Object



24
25
26
# File 'lib/readme_yard/comment_tag.rb', line 24

def format_yard_object(yard_object)
  format_tag(yard_object, nil)
end

.named_readme_tag_regexObject



45
46
47
# File 'lib/readme_yard/comment_tag.rb', line 45

def named_readme_tag_regex
  @named_readme_tag_regex ||= /(\n|^)@readme\s(#{ReadmeYard::TagRegistry.tag_names.join("|")})\n/
end