Skip to content

Commit 5437418

Browse files
authored
Merge pull request #832 from aycabta/move-rdoc-rdoc-load_options-to-rdoc-options-load_options
Move RDoc::RDoc#load_options to RDoc::RDoc.load_options
2 parents 89a59f2 + ac85e01 commit 5437418

File tree

4 files changed

+89
-89
lines changed

4 files changed

+89
-89
lines changed

lib/rdoc/options.rb

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1282,4 +1282,33 @@ def write_options
12821282
end
12831283
end
12841284

1285+
##
1286+
# Loads options from .rdoc_options if the file exists, otherwise creates a
1287+
# new RDoc::Options instance.
1288+
1289+
def self.load_options
1290+
options_file = File.expand_path '.rdoc_options'
1291+
return RDoc::Options.new unless File.exist? options_file
1292+
1293+
RDoc.load_yaml
1294+
1295+
begin
1296+
options = YAML.safe_load File.read('.rdoc_options'), permitted_classes: [RDoc::Options, Symbol]
1297+
rescue Psych::SyntaxError
1298+
raise RDoc::Error, "#{options_file} is not a valid rdoc options file"
1299+
end
1300+
1301+
return RDoc::Options.new unless options # Allow empty file.
1302+
1303+
raise RDoc::Error, "#{options_file} is not a valid rdoc options file" unless
1304+
RDoc::Options === options or Hash === options
1305+
1306+
if Hash === options
1307+
# Override the default values with the contents of YAML file.
1308+
options = RDoc::Options.new options
1309+
end
1310+
1311+
options
1312+
end
1313+
12851314
end

lib/rdoc/rdoc.rb

Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
# is:
1515
#
1616
# rdoc = RDoc::RDoc.new
17-
# options = rdoc.load_options # returns an RDoc::Options instance
17+
# options = RDoc::Options.load_options # returns an RDoc::Options instance
1818
# # set extra options
1919
# rdoc.document options
2020
#
@@ -151,35 +151,6 @@ def install_siginfo_handler
151151
end
152152
end
153153

154-
##
155-
# Loads options from .rdoc_options if the file exists, otherwise creates a
156-
# new RDoc::Options instance.
157-
158-
def load_options
159-
options_file = File.expand_path '.rdoc_options'
160-
return RDoc::Options.new unless File.exist? options_file
161-
162-
RDoc.load_yaml
163-
164-
begin
165-
options = YAML.safe_load File.read('.rdoc_options'), permitted_classes: [RDoc::Options, Symbol]
166-
rescue Psych::SyntaxError
167-
raise RDoc::Error, "#{options_file} is not a valid rdoc options file"
168-
end
169-
170-
return RDoc::Options.new unless options # Allow empty file.
171-
172-
raise RDoc::Error, "#{options_file} is not a valid rdoc options file" unless
173-
RDoc::Options === options or Hash === options
174-
175-
if Hash === options
176-
# Override the default values with the contents of YAML file.
177-
options = RDoc::Options.new options
178-
end
179-
180-
options
181-
end
182-
183154
##
184155
# Create an output dir if it doesn't exist. If it does exist, but doesn't
185156
# contain the flag file <tt>created.rid</tt> then we refuse to use it, as
@@ -471,7 +442,7 @@ def document options
471442
@options = options
472443
@options.finish
473444
else
474-
@options = load_options
445+
@options = RDoc::Options.load_options
475446
@options.parse options
476447
end
477448

test/rdoc/test_rdoc_options.rb

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -777,4 +777,62 @@ def test_visibility
777777
@options.visibility = :all
778778
assert_equal :private, @options.visibility
779779
end
780+
781+
def test_load_options
782+
temp_dir do
783+
options = RDoc::Options.new
784+
options.markup = 'tomdoc'
785+
options.write_options
786+
787+
options = RDoc::Options.load_options
788+
789+
assert_equal 'tomdoc', options.markup
790+
end
791+
end
792+
793+
def test_load_options_invalid
794+
temp_dir do
795+
File.open '.rdoc_options', 'w' do |io|
796+
io.write "a: !ruby.yaml.org,2002:str |\nfoo"
797+
end
798+
799+
e = assert_raise RDoc::Error do
800+
RDoc::Options.load_options
801+
end
802+
803+
options_file = File.expand_path '.rdoc_options'
804+
assert_equal "#{options_file} is not a valid rdoc options file", e.message
805+
end
806+
end
807+
808+
def test_load_options_empty_file
809+
temp_dir do
810+
File.open '.rdoc_options', 'w' do |io|
811+
end
812+
813+
options = RDoc::Options.load_options
814+
815+
assert_equal 'rdoc', options.markup
816+
end
817+
end
818+
819+
def test_load_options_partial_override
820+
temp_dir do
821+
File.open '.rdoc_options', 'w' do |io|
822+
io.write "markup: Markdown"
823+
end
824+
825+
options = RDoc::Options.load_options
826+
827+
assert_equal 'Markdown', options.markup
828+
end
829+
end
830+
831+
def load_options_no_file
832+
temp_dir do
833+
options = RDoc::Options.load_options
834+
835+
assert_kind_of RDoc::Options, options
836+
end
837+
end
780838
end

test/rdoc/test_rdoc_rdoc.rb

Lines changed: 0 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -106,64 +106,6 @@ def test_handle_pipe_rd
106106
$stdin = STDIN
107107
end
108108

109-
def test_load_options
110-
temp_dir do
111-
options = RDoc::Options.new
112-
options.markup = 'tomdoc'
113-
options.write_options
114-
115-
options = @rdoc.load_options
116-
117-
assert_equal 'tomdoc', options.markup
118-
end
119-
end
120-
121-
def test_load_options_invalid
122-
temp_dir do
123-
File.open '.rdoc_options', 'w' do |io|
124-
io.write "a: !ruby.yaml.org,2002:str |\nfoo"
125-
end
126-
127-
e = assert_raise RDoc::Error do
128-
@rdoc.load_options
129-
end
130-
131-
options_file = File.expand_path '.rdoc_options'
132-
assert_equal "#{options_file} is not a valid rdoc options file", e.message
133-
end
134-
end
135-
136-
def test_load_options_empty_file
137-
temp_dir do
138-
File.open '.rdoc_options', 'w' do |io|
139-
end
140-
141-
options = @rdoc.load_options
142-
143-
assert_equal 'rdoc', options.markup
144-
end
145-
end
146-
147-
def test_load_options_partial_override
148-
temp_dir do
149-
File.open '.rdoc_options', 'w' do |io|
150-
io.write "markup: Markdown"
151-
end
152-
153-
options = @rdoc.load_options
154-
155-
assert_equal 'Markdown', options.markup
156-
end
157-
end
158-
159-
def load_options_no_file
160-
temp_dir do
161-
options = @rdoc.load_options
162-
163-
assert_kind_of RDoc::Options, options
164-
end
165-
end
166-
167109
def test_normalized_file_list
168110
test_path = File.expand_path(__FILE__)
169111
files = temp_dir do |dir|

0 commit comments

Comments
 (0)