From 2d579c00745e342db294a4a4afb547c85ceac05c Mon Sep 17 00:00:00 2001 From: drbrain Date: Fri, 25 Jan 2013 00:15:08 +0000 Subject: [PATCH] * lib/rdoc/generator/darkfish.rb: Fixed debug message. RDoc bug #174 by Thomas Leitner. * lib/rdoc/store.rb: Fixed deletion of ri attribute data when a class was loaded then saved. RDoc bug #171 by Thomas Leitner. * test/rdoc/test_rdoc_store.rb: Test for above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 9 +++++++ lib/rdoc/generator/darkfish.rb | 2 +- lib/rdoc/store.rb | 10 +++++--- test/rdoc/test_rdoc_store.rb | 47 +++++++++++++++++++++++++++++++--- 4 files changed, 59 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9ea80ff4a0..15d827a61a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Fri Jan 25 09:14:43 2013 Eric Hodel + + * lib/rdoc/generator/darkfish.rb: Fixed debug message. RDoc bug #174 + by Thomas Leitner. + + * lib/rdoc/store.rb: Fixed deletion of ri attribute data when a class + was loaded then saved. RDoc bug #171 by Thomas Leitner. + * test/rdoc/test_rdoc_store.rb: Test for above. + Thu Jan 24 19:55:25 2013 Shota Fukumori * NEWS (yaml): Write about bundled libyaml. diff --git a/lib/rdoc/generator/darkfish.rb b/lib/rdoc/generator/darkfish.rb index 103a244a25..ba62646e77 100644 --- a/lib/rdoc/generator/darkfish.rb +++ b/lib/rdoc/generator/darkfish.rb @@ -453,7 +453,7 @@ class RDoc::Generator::Darkfish template_file = @template_dir + 'servlet_not_found.rhtml' return unless template_file.exist? - debug_msg "Rendering the servlet root page..." + debug_msg "Rendering the servlet 404 Not Found page..." rel_prefix = rel_prefix = '' search_index_rel_prefix = rel_prefix diff --git a/lib/rdoc/store.rb b/lib/rdoc/store.rb index 4975c6af51..6cbbfb5b69 100644 --- a/lib/rdoc/store.rb +++ b/lib/rdoc/store.rb @@ -819,13 +819,13 @@ class RDoc::Store @cache[:ancestors][full_name] ||= [] @cache[:ancestors][full_name].concat ancestors - attributes = klass.attributes.map do |attribute| + attribute_definitions = klass.attributes.map do |attribute| "#{attribute.definition} #{attribute.name}" end - unless attributes.empty? then + unless attribute_definitions.empty? then @cache[:attributes][full_name] ||= [] - @cache[:attributes][full_name].concat attributes + @cache[:attributes][full_name].concat attribute_definitions end to_delete = [] @@ -839,13 +839,15 @@ class RDoc::Store class_methods = class_methods. map { |method| method.name } instance_methods = instance_methods.map { |method| method.name } + attribute_names = klass.attributes.map { |attr| attr.name } old = @cache[:class_methods][full_name] - class_methods to_delete.concat old.map { |method| method_file full_name, "#{full_name}::#{method}" } - old = @cache[:instance_methods][full_name] - instance_methods + old = @cache[:instance_methods][full_name] - + instance_methods - attribute_names to_delete.concat old.map { |method| method_file full_name, "#{full_name}##{method}" } diff --git a/test/rdoc/test_rdoc_store.rb b/test/rdoc/test_rdoc_store.rb index 7e18693803..3b92707987 100644 --- a/test/rdoc/test_rdoc_store.rb +++ b/test/rdoc/test_rdoc_store.rb @@ -778,6 +778,7 @@ class TestRDocStore < XrefTestCase @s.save_method @klass, @meth @s.save_method @klass, @meth_bang @s.save_method @klass, @cmeth + @s.save_method @klass, @attr @s.save_cache klass = RDoc::NormalClass.new 'Object' @@ -799,11 +800,15 @@ class TestRDocStore < XrefTestCase assert_cache({ 'Object' => %w[replace] }, {}, { 'Object' => %w[attr_accessor\ attr] }, %w[Object], - 'Object' => OBJECT_ANCESTORS) + 'Object' => OBJECT_ANCESTORS) - refute File.exist? @s.method_file(@klass.full_name, @meth.full_name) - refute File.exist? @s.method_file(@klass.full_name, @meth_bang.full_name) - refute File.exist? @s.method_file(@klass.full_name, @cmeth.full_name) + # assert these files were deleted + refute_file @s.method_file(@klass.full_name, @meth.full_name) + refute_file @s.method_file(@klass.full_name, @meth_bang.full_name) + refute_file @s.method_file(@klass.full_name, @cmeth.full_name) + + # assert these files were not deleted + assert_file @s.method_file(@klass.full_name, @attr.full_name) end def test_save_class_dry_run @@ -815,6 +820,40 @@ class TestRDocStore < XrefTestCase refute_file File.join(@tmpdir, 'Object', 'cdesc-Object.ri') end + def test_save_class_loaded + @s.save + + assert_directory File.join(@tmpdir, 'Object') + assert_file File.join(@tmpdir, 'Object', 'cdesc-Object.ri') + + assert_file @s.method_file(@klass.full_name, @attr.full_name) + assert_file @s.method_file(@klass.full_name, @cmeth.full_name) + assert_file @s.method_file(@klass.full_name, @meth.full_name) + assert_file @s.method_file(@klass.full_name, @meth_bang.full_name) + + s = RDoc::Store.new @s.path + s.load_cache + + loaded = s.load_class 'Object' + + assert_equal @klass, loaded + + s.save_class loaded + + s = RDoc::Store.new @s.path + s.load_cache + + reloaded = s.load_class 'Object' + + assert_equal @klass, reloaded + + # assert these files were not deleted. Bug #171 + assert_file s.method_file(@klass.full_name, @attr.full_name) + assert_file s.method_file(@klass.full_name, @cmeth.full_name) + assert_file s.method_file(@klass.full_name, @meth.full_name) + assert_file s.method_file(@klass.full_name, @meth_bang.full_name) + end + def test_save_class_merge @s.save_class @klass