[ruby/rdoc] Allow partial default values to be overridden with .rdoc_options
https://github.com/ruby/rdoc/commit/e14800891f
This commit is contained in:
parent
de8e6218a3
commit
971a0cd246
Notes:
git
2021-03-16 15:47:53 +09:00
@ -338,8 +338,9 @@ class RDoc::Options
|
|||||||
|
|
||||||
attr_reader :visibility
|
attr_reader :visibility
|
||||||
|
|
||||||
def initialize # :nodoc:
|
def initialize loaded_options = nil # :nodoc:
|
||||||
init_ivars
|
init_ivars
|
||||||
|
override loaded_options if loaded_options
|
||||||
end
|
end
|
||||||
|
|
||||||
def init_ivars # :nodoc:
|
def init_ivars # :nodoc:
|
||||||
@ -417,6 +418,37 @@ class RDoc::Options
|
|||||||
init_with map
|
init_with map
|
||||||
end
|
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:
|
def == other # :nodoc:
|
||||||
self.class === other and
|
self.class === other and
|
||||||
@encoding == other.encoding and
|
@encoding == other.encoding and
|
||||||
|
@ -167,7 +167,12 @@ class RDoc::RDoc
|
|||||||
end
|
end
|
||||||
|
|
||||||
raise RDoc::Error, "#{options_file} is not a valid rdoc options file" unless
|
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
|
options
|
||||||
end
|
end
|
||||||
|
@ -133,6 +133,18 @@ class TestRDocRDoc < RDoc::TestCase
|
|||||||
end
|
end
|
||||||
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
|
def load_options_no_file
|
||||||
temp_dir do
|
temp_dir do
|
||||||
options = @rdoc.load_options
|
options = @rdoc.load_options
|
||||||
|
Loading…
x
Reference in New Issue
Block a user