@@ -338,8 +338,9 @@ class RDoc::Options
338338
339339 attr_reader :visibility
340340
341- def initialize # :nodoc:
341+ def initialize loaded_options = nil # :nodoc:
342342 init_ivars
343+ override loaded_options if loaded_options
343344 end
344345
345346 def init_ivars # :nodoc:
@@ -417,6 +418,37 @@ def yaml_initialize tag, map # :nodoc:
417418 init_with map
418419 end
419420
421+ def override map # :nodoc:
422+ if map . has_key? ( 'encoding' )
423+ encoding = map [ 'encoding' ]
424+ @encoding = encoding ? Encoding . find ( encoding ) : encoding
425+ end
426+
427+ @charset = map [ 'charset' ] if map . has_key? ( 'charset' )
428+ @exclude = map [ 'exclude' ] if map . has_key? ( 'exclude' )
429+ @generator_name = map [ 'generator_name' ] if map . has_key? ( 'generator_name' )
430+ @hyperlink_all = map [ 'hyperlink_all' ] if map . has_key? ( 'hyperlink_all' )
431+ @line_numbers = map [ 'line_numbers' ] if map . has_key? ( 'line_numbers' )
432+ @locale_name = map [ 'locale_name' ] if map . has_key? ( 'locale_name' )
433+ @locale_dir = map [ 'locale_dir' ] if map . has_key? ( 'locale_dir' )
434+ @main_page = map [ 'main_page' ] if map . has_key? ( 'main_page' )
435+ @markup = map [ 'markup' ] if map . has_key? ( 'markup' )
436+ @op_dir = map [ 'op_dir' ] if map . has_key? ( 'op_dir' )
437+ @show_hash = map [ 'show_hash' ] if map . has_key? ( 'show_hash' )
438+ @tab_width = map [ 'tab_width' ] if map . has_key? ( 'tab_width' )
439+ @template_dir = map [ 'template_dir' ] if map . has_key? ( 'template_dir' )
440+ @title = map [ 'title' ] if map . has_key? ( 'title' )
441+ @visibility = map [ 'visibility' ] if map . has_key? ( 'visibility' )
442+ @webcvs = map [ 'webcvs' ] if map . has_key? ( 'webcvs' )
443+
444+ if map . has_key? ( 'rdoc_include' )
445+ @rdoc_include = sanitize_path map [ 'rdoc_include' ]
446+ end
447+ if map . has_key? ( 'static_path' )
448+ @static_path = sanitize_path map [ 'static_path' ]
449+ end
450+ end
451+
420452 def == other # :nodoc:
421453 self . class === other and
422454 @encoding == other . encoding and
0 commit comments