Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions lib/rdoc/options.rb
Original file line number Diff line number Diff line change
Expand Up @@ -339,6 +339,10 @@ class RDoc::Options

attr_reader :visibility

##
# Indicates if files of test suites should be skipped
attr_accessor :skip_tests

def initialize loaded_options = nil # :nodoc:
init_ivars
override loaded_options if loaded_options
Expand Down Expand Up @@ -386,6 +390,7 @@ def init_ivars # :nodoc:
@write_options = false
@encoding = Encoding::UTF_8
@charset = @encoding.name
@skip_tests = true
end

def init_with map # :nodoc:
Expand Down Expand Up @@ -778,6 +783,13 @@ def parse argv

opt.separator nil

opt.on("--no-skipping-tests", nil,
"Don't skip generating documentation for test and spec files") do |value|
@skip_tests = false
end

opt.separator nil

opt.on("--extension=NEW=OLD", "-E",
"Treat files ending with .new as if they",
"ended with .old. Using '-E cgi=rb' will",
Expand Down
16 changes: 15 additions & 1 deletion lib/rdoc/rdoc.rb
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,17 @@ class RDoc::RDoc

GENERATORS = {}

##
# List of directory names always skipped

UNCONDITIONALLY_SKIPPED_DIRECTORIES = %w[CVS .svn .git].freeze

##
# List of directory names skipped if test suites should be skipped

TEST_SUITE_DIRECTORY_NAMES = %w[spec test].freeze


##
# Generator instance used for creating output

Expand Down Expand Up @@ -280,7 +291,10 @@ def normalized_file_list(relative_files, force_doc = false,
file_list[rel_file_name] = mtime
end
when "directory" then
next if rel_file_name == "CVS" || rel_file_name == ".svn"
next if UNCONDITIONALLY_SKIPPED_DIRECTORIES.include?(rel_file_name)

basename = File.basename(rel_file_name)
next if options.skip_tests && TEST_SUITE_DIRECTORY_NAMES.include?(basename)

created_rid = File.join rel_file_name, "created.rid"
next if File.file? created_rid
Expand Down
11 changes: 11 additions & 0 deletions test/rdoc/test_rdoc_options.rb
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ def test_to_yaml
'title' => nil,
'visibility' => :protected,
'webcvs' => nil,
'skip_tests' => true,
}

assert_equal expected, coder
Expand Down Expand Up @@ -871,6 +872,16 @@ def test_load_options_no_file
end
end

def test_skip_test_default_value
@options.parse %w[]
assert_equal true, @options.skip_tests
end

def test_no_skip_test_value
@options.parse %w[--no-skipping-tests]
assert_equal false, @options.skip_tests
end

class DummyCoder < Hash
alias add :[]=
def tag=(tag)
Expand Down
42 changes: 42 additions & 0 deletions test/rdoc/test_rdoc_rdoc.rb
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,48 @@ def test_normalized_file_list_with_dot_doc_overridden_by_exclude_option
assert_equal expected_files, files
end

def test_normalized_file_list_with_skipping_tests_enabled
files = temp_dir do |dir|
@a = File.expand_path('a.rb')
spec_dir = File.expand_path('spec')
spec_file = File.expand_path(File.join('spec', 'my_spec.rb'))
test_dir = File.expand_path('test')
test_file = File.expand_path(File.join('test', 'my_test.rb'))
FileUtils.touch @a
FileUtils.mkdir_p spec_dir
FileUtils.touch spec_file
FileUtils.mkdir_p test_dir
FileUtils.touch test_file

@rdoc.options.skip_tests = true
@rdoc.normalized_file_list [File.realpath(dir)]
end

files = files.map { |file, *| File.expand_path file }
assert_equal [@a], files
end

def test_normalized_file_list_with_skipping_tests_disabled
files = temp_dir do |dir|
@a = File.expand_path('a.rb')
spec_dir = File.expand_path('spec')
@spec_file = File.expand_path(File.join('spec', 'my_spec.rb'))
test_dir = File.expand_path('test')
@test_file = File.expand_path(File.join('test', 'my_test.rb'))
FileUtils.touch @a
FileUtils.mkdir_p spec_dir
FileUtils.touch @spec_file
FileUtils.mkdir_p test_dir
FileUtils.touch @test_file

@rdoc.options.skip_tests = false
@rdoc.normalized_file_list [File.realpath(dir)]
end

files = files.map { |file, *| File.expand_path file }
assert_equal [@a, @spec_file, @test_file], files.sort
end

def test_parse_file
@rdoc.store = RDoc::Store.new

Expand Down