diff options
author | aycabta <[email protected]> | 2021-03-07 10:13:14 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <[email protected]> | 2021-03-16 15:47:27 +0900 |
commit | 971a0cd246db6578e1ea8760a903e1a23e3681f3 (patch) | |
tree | 7fa26377fac2c500522cec48160e99ce8eb9207a /lib/rdoc | |
parent | de8e6218a3257fe19b46ff0aa157e66f452ac8b7 (diff) |
[ruby/rdoc] Allow partial default values to be overridden with .rdoc_options
https://github.com/ruby/rdoc/commit/e14800891f
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/4274
Diffstat (limited to 'lib/rdoc')
-rw-r--r-- | lib/rdoc/options.rb | 34 | ||||
-rw-r--r-- | lib/rdoc/rdoc.rb | 7 |
2 files changed, 39 insertions, 2 deletions
diff --git a/lib/rdoc/options.rb b/lib/rdoc/options.rb index 13c1abae0a..13b7ba5c6c 100644 --- a/lib/rdoc/options.rb +++ b/lib/rdoc/options.rb @@ -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 diff --git a/lib/rdoc/rdoc.rb b/lib/rdoc/rdoc.rb index 93e764c462..c47f639cc4 100644 --- a/lib/rdoc/rdoc.rb +++ b/lib/rdoc/rdoc.rb @@ -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 |