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:
parent
de8e6218a3
commit
971a0cd246
Notes:
git
2021-03-16 15:47:53 +09:00
3 changed files with 51 additions and 2 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue