1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

[ruby/rdoc] fix: comments in C files use the global markup option

Previously, Parser::C comments all defaulted to "rdoc" format, even
when the user had set a different default with the `--markup=<choice>`
option.

https://github.com/ruby/rdoc/commit/4643b08a26
This commit is contained in:
Mike Dalessio 2021-10-11 17:01:52 -04:00 committed by git
parent d4894e81c0
commit fbd0516afc
2 changed files with 22 additions and 1 deletions

View file

@ -173,6 +173,8 @@ class RDoc::Parser::C < RDoc::Parser
@classes = load_variable_map :c_class_variables @classes = load_variable_map :c_class_variables
@singleton_classes = load_variable_map :c_singleton_class_variables @singleton_classes = load_variable_map :c_singleton_class_variables
@markup = @options.markup
# class_variable => { function => [method, ...] } # class_variable => { function => [method, ...] }
@methods = Hash.new { |h, f| h[f] = Hash.new { |i, m| i[m] = [] } } @methods = Hash.new { |h, f| h[f] = Hash.new { |i, m| i[m] = [] } }
@ -1223,6 +1225,8 @@ class RDoc::Parser::C < RDoc::Parser
end end
def new_comment text = nil, location = nil, language = nil def new_comment text = nil, location = nil, language = nil
RDoc::Comment.new(text, location, language) RDoc::Comment.new(text, location, language).tap do |comment|
comment.format = @markup
end
end end
end end

View file

@ -1946,6 +1946,23 @@ void Init_Blah(void) {
assert_equal("rdoc", klass.attributes.find {|a| a.name == "default_format"}.comment.format) assert_equal("rdoc", klass.attributes.find {|a| a.name == "default_format"}.comment.format)
end end
def test_markup_format_override
content = <<-EOF
void Init_Blah(void) {
cBlah = rb_define_class("Blah", rb_cObject);
/*
* This should be interpreted in the default format.
*/
rb_attr(cBlah, rb_intern("default_format"), 1, 1, Qfalse);
}
EOF
@options.markup = "markdown"
klass = util_get_class content, 'cBlah'
assert_equal("markdown", klass.attributes.find {|a| a.name == "default_format"}.comment.format)
end
def util_get_class content, name = nil def util_get_class content, name = nil
@parser = util_parser content @parser = util_parser content
@parser.scan @parser.scan