class Bake::Documentation
Structured access to a set of comment lines.
def attributes
@parameter match [MatchData] The regular expression match with `name` and `value` keys.
@yields {|match| ...}
e.g. `@returns [String]`.
The attribute lines of the comment block.
def attributes return to_enum(:attributes) unless block_given? @comments.each do |comment| if match = comment.match(ATTRIBUTE) yield match end end end
def description
@parameter match [MatchData] The regular expression match for each line of documentation.
@yields {|match| ...}
The text-only lines of the comment block.
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
def initialize(comments)
Initialize the documentation with an array of comments.
def initialize(comments) @comments = comments end
def parameters
@parameter match [MatchData] The regular expression match with `name`, `type` and `details` keys.
@yields {|match| ...}
e.g. `@parameter value [String] The value.`
The parameter lines of the comment block.
def parameters return to_enum(:parameters) unless block_given? @comments.each do |comment| if match = comment.match(PARAMETER) yield match end end end