class Bake::Documentation
Structured access to a set of comment lines.
Constants
- ATTRIBUTE
- DESCRIPTION
- PARAMETER
Public Class Methods
new(comments)
click to toggle source
Initialize the documentation with an array of comments.
@parameter comments [Array(String)] An array of comment lines.
# File lib/bake/documentation.rb, line 31 def initialize(comments) @comments = comments end
Public Instance Methods
attributes() { |match| ... }
click to toggle source
The attribute lines of the comment block. e.g. `@returns [String]`.
@yields {|match| …}
@parameter match [MatchData] The regular expression match with `name` and `value` keys.
@returns [Enumerable] If no block given.
# File lib/bake/documentation.rb, line 74 def attributes return to_enum(:attributes) unless block_given? @comments.each do |comment| if match = comment.match(ATTRIBUTE) yield match end end end
description() { |""| ... }
click to toggle source
The text-only lines of the comment block.
@yields {|match| …}
@parameter match [MatchData] The regular expression match for each line of documentation.
@returns [Enumerable] If no block given.
# File lib/bake/documentation.rb, line 42 def description return to_enum(:description) unless block_given? # We track empty lines and only yield a single empty line when there is another line of text: gap = false @comments.each do |comment| if match = comment.match(DESCRIPTION) if match[1] if gap yield "" gap = false end yield match[1] else gap = true end else break end end end
parameters() { |match| ... }
click to toggle source
The parameter lines of the comment block. e.g. `@parameter value [String] The value.`
@yields {|match| …}
@parameter match [MatchData] The regular expression match with `name`, `type` and `details` keys.
@returns [Enumerable] If no block given.
# File lib/bake/documentation.rb, line 92 def parameters return to_enum(:parameters) unless block_given? @comments.each do |comment| if match = comment.match(PARAMETER) yield match end end end