aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-01-25 00:15:08 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-01-25 00:15:08 +0000
commit2d579c00745e342db294a4a4afb547c85ceac05c (patch)
tree21a21fe9c9b7b053f6b91acef5e109f096cbee1a
parentf1ef3d600d5b0a8253dc5d6585f0607f2f23f515 (diff)
downloadruby-2d579c00745e342db294a4a4afb547c85ceac05c.tar.gz
* 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
-rw-r--r--ChangeLog9
-rw-r--r--lib/rdoc/generator/darkfish.rb2
-rw-r--r--lib/rdoc/store.rb10
-rw-r--r--test/rdoc/test_rdoc_store.rb47
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 <drbrain@segment7.net>
+
+ * 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 <her@sorah.jp>
* 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