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

[ruby/rdoc] Allow partial default values to be overridden with .rdoc_options

https://github.com/ruby/rdoc/commit/e14800891f
This commit is contained in:
aycabta 2021-03-07 10:13:14 +09:00 committed by Nobuyoshi Nakada
parent de8e6218a3
commit 971a0cd246
Notes: git 2021-03-16 15:47:53 +09:00
3 changed files with 51 additions and 2 deletions

View file

@ -338,8 +338,9 @@ class RDoc::Options
attr_reader :visibility
def initialize # :nodoc:
def initialize loaded_options = nil # :nodoc:
init_ivars
override loaded_options if loaded_options
end
def init_ivars # :nodoc:
@ -417,6 +418,37 @@ class RDoc::Options
init_with map
end
def override map # :nodoc:
if map.has_key?('encoding')
encoding = map['encoding']
@encoding = encoding ? Encoding.find(encoding) : encoding
end
@charset = map['charset'] if map.has_key?('charset')
@exclude = map['exclude'] if map.has_key?('exclude')
@generator_name = map['generator_name'] if map.has_key?('generator_name')
@hyperlink_all = map['hyperlink_all'] if map.has_key?('hyperlink_all')
@line_numbers = map['line_numbers'] if map.has_key?('line_numbers')
@locale_name = map['locale_name'] if map.has_key?('locale_name')
@locale_dir = map['locale_dir'] if map.has_key?('locale_dir')
@main_page = map['main_page'] if map.has_key?('main_page')
@markup = map['markup'] if map.has_key?('markup')
@op_dir = map['op_dir'] if map.has_key?('op_dir')
@show_hash = map['show_hash'] if map.has_key?('show_hash')
@tab_width = map['tab_width'] if map.has_key?('tab_width')
@template_dir = map['template_dir'] if map.has_key?('template_dir')
@title = map['title'] if map.has_key?('title')
@visibility = map['visibility'] if map.has_key?('visibility')
@webcvs = map['webcvs'] if map.has_key?('webcvs')
if map.has_key?('rdoc_include')
@rdoc_include = sanitize_path map['rdoc_include']
end
if map.has_key?('static_path')
@static_path = sanitize_path map['static_path']
end
end
def == other # :nodoc:
self.class === other and
@encoding == other.encoding and

View file

@ -167,7 +167,12 @@ class RDoc::RDoc
end
raise RDoc::Error, "#{options_file} is not a valid rdoc options file" unless
RDoc::Options === options
RDoc::Options === options or Hash === options
if Hash === options
# Override the default values with the contents of YAML file.
options = RDoc::Options.new options
end
options
end

View file

@ -133,6 +133,18 @@ class TestRDocRDoc < RDoc::TestCase
end
end
def test_load_options_partial_override
temp_dir do
File.open '.rdoc_options', 'w' do |io|
io.write "markup: Markdown"
end
options = @rdoc.load_options
assert_equal 'Markdown', options.markup
end
end
def load_options_no_file
temp_dir do
options = @rdoc.load_options