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

[ruby/rdoc] Move RDoc::RDoc#load_options to RDoc::RDoc.load_options

https://github.com/ruby/rdoc/commit/ac85e01756
This commit is contained in:
aycabta 2021-09-02 00:21:10 +09:00 committed by git
parent 10ebf87428
commit cf2faf2e33
4 changed files with 89 additions and 89 deletions

View file

@ -1282,4 +1282,33 @@ Usage: #{opt.program_name} [options] [names...]
end
end
##
# Loads options from .rdoc_options if the file exists, otherwise creates a
# new RDoc::Options instance.
def self.load_options
options_file = File.expand_path '.rdoc_options'
return RDoc::Options.new unless File.exist? options_file
RDoc.load_yaml
begin
options = YAML.safe_load File.read('.rdoc_options'), permitted_classes: [RDoc::Options, Symbol]
rescue Psych::SyntaxError
raise RDoc::Error, "#{options_file} is not a valid rdoc options file"
end
return RDoc::Options.new unless options # Allow empty file.
raise RDoc::Error, "#{options_file} is not a valid rdoc options file" unless
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
end

View file

@ -14,7 +14,7 @@ require 'time'
# is:
#
# rdoc = RDoc::RDoc.new
# options = rdoc.load_options # returns an RDoc::Options instance
# options = RDoc::Options.load_options # returns an RDoc::Options instance
# # set extra options
# rdoc.document options
#
@ -151,35 +151,6 @@ class RDoc::RDoc
end
end
##
# Loads options from .rdoc_options if the file exists, otherwise creates a
# new RDoc::Options instance.
def load_options
options_file = File.expand_path '.rdoc_options'
return RDoc::Options.new unless File.exist? options_file
RDoc.load_yaml
begin
options = YAML.safe_load File.read('.rdoc_options'), permitted_classes: [RDoc::Options, Symbol]
rescue Psych::SyntaxError
raise RDoc::Error, "#{options_file} is not a valid rdoc options file"
end
return RDoc::Options.new unless options # Allow empty file.
raise RDoc::Error, "#{options_file} is not a valid rdoc options file" unless
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
##
# Create an output dir if it doesn't exist. If it does exist, but doesn't
# contain the flag file <tt>created.rid</tt> then we refuse to use it, as
@ -471,7 +442,7 @@ The internal error was:
@options = options
@options.finish
else
@options = load_options
@options = RDoc::Options.load_options
@options.parse options
end

View file

@ -777,4 +777,62 @@ rdoc_include:
@options.visibility = :all
assert_equal :private, @options.visibility
end
def test_load_options
temp_dir do
options = RDoc::Options.new
options.markup = 'tomdoc'
options.write_options
options = RDoc::Options.load_options
assert_equal 'tomdoc', options.markup
end
end
def test_load_options_invalid
temp_dir do
File.open '.rdoc_options', 'w' do |io|
io.write "a: !ruby.yaml.org,2002:str |\nfoo"
end
e = assert_raise RDoc::Error do
RDoc::Options.load_options
end
options_file = File.expand_path '.rdoc_options'
assert_equal "#{options_file} is not a valid rdoc options file", e.message
end
end
def test_load_options_empty_file
temp_dir do
File.open '.rdoc_options', 'w' do |io|
end
options = RDoc::Options.load_options
assert_equal 'rdoc', options.markup
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::Options.load_options
assert_equal 'Markdown', options.markup
end
end
def load_options_no_file
temp_dir do
options = RDoc::Options.load_options
assert_kind_of RDoc::Options, options
end
end
end

View file

@ -106,64 +106,6 @@ class TestRDocRDoc < RDoc::TestCase
$stdin = STDIN
end
def test_load_options
temp_dir do
options = RDoc::Options.new
options.markup = 'tomdoc'
options.write_options
options = @rdoc.load_options
assert_equal 'tomdoc', options.markup
end
end
def test_load_options_invalid
temp_dir do
File.open '.rdoc_options', 'w' do |io|
io.write "a: !ruby.yaml.org,2002:str |\nfoo"
end
e = assert_raise RDoc::Error do
@rdoc.load_options
end
options_file = File.expand_path '.rdoc_options'
assert_equal "#{options_file} is not a valid rdoc options file", e.message
end
end
def test_load_options_empty_file
temp_dir do
File.open '.rdoc_options', 'w' do |io|
end
options = @rdoc.load_options
assert_equal 'rdoc', options.markup
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
assert_kind_of RDoc::Options, options
end
end
def test_normalized_file_list
test_path = File.expand_path(__FILE__)
files = temp_dir do |dir|