* 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
This commit is contained in:
drbrain 2013-01-25 00:15:08 +00:00
Родитель f1ef3d600d
Коммит 2d579c0074
4 изменённых файлов: 59 добавлений и 9 удалений

Просмотреть файл

@ -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> Thu Jan 24 19:55:25 2013 Shota Fukumori <her@sorah.jp>
* NEWS (yaml): Write about bundled libyaml. * NEWS (yaml): Write about bundled libyaml.

Просмотреть файл

@ -453,7 +453,7 @@ class RDoc::Generator::Darkfish
template_file = @template_dir + 'servlet_not_found.rhtml' template_file = @template_dir + 'servlet_not_found.rhtml'
return unless template_file.exist? 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 = '' rel_prefix = rel_prefix = ''
search_index_rel_prefix = rel_prefix search_index_rel_prefix = rel_prefix

Просмотреть файл

@ -819,13 +819,13 @@ class RDoc::Store
@cache[:ancestors][full_name] ||= [] @cache[:ancestors][full_name] ||= []
@cache[:ancestors][full_name].concat ancestors @cache[:ancestors][full_name].concat ancestors
attributes = klass.attributes.map do |attribute| attribute_definitions = klass.attributes.map do |attribute|
"#{attribute.definition} #{attribute.name}" "#{attribute.definition} #{attribute.name}"
end end
unless attributes.empty? then unless attribute_definitions.empty? then
@cache[:attributes][full_name] ||= [] @cache[:attributes][full_name] ||= []
@cache[:attributes][full_name].concat attributes @cache[:attributes][full_name].concat attribute_definitions
end end
to_delete = [] to_delete = []
@ -839,13 +839,15 @@ class RDoc::Store
class_methods = class_methods. map { |method| method.name } class_methods = class_methods. map { |method| method.name }
instance_methods = instance_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 old = @cache[:class_methods][full_name] - class_methods
to_delete.concat old.map { |method| to_delete.concat old.map { |method|
method_file full_name, "#{full_name}::#{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| to_delete.concat old.map { |method|
method_file full_name, "#{full_name}##{method}" method_file full_name, "#{full_name}##{method}"
} }

Просмотреть файл

@ -778,6 +778,7 @@ class TestRDocStore < XrefTestCase
@s.save_method @klass, @meth @s.save_method @klass, @meth
@s.save_method @klass, @meth_bang @s.save_method @klass, @meth_bang
@s.save_method @klass, @cmeth @s.save_method @klass, @cmeth
@s.save_method @klass, @attr
@s.save_cache @s.save_cache
klass = RDoc::NormalClass.new 'Object' klass = RDoc::NormalClass.new 'Object'
@ -801,9 +802,13 @@ class TestRDocStore < XrefTestCase
{ 'Object' => %w[attr_accessor\ attr] }, %w[Object], { '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) # assert these files were deleted
refute File.exist? @s.method_file(@klass.full_name, @meth_bang.full_name) refute_file @s.method_file(@klass.full_name, @meth.full_name)
refute File.exist? @s.method_file(@klass.full_name, @cmeth.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 end
def test_save_class_dry_run def test_save_class_dry_run
@ -815,6 +820,40 @@ class TestRDocStore < XrefTestCase
refute_file File.join(@tmpdir, 'Object', 'cdesc-Object.ri') refute_file File.join(@tmpdir, 'Object', 'cdesc-Object.ri')
end 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 def test_save_class_merge
@s.save_class @klass @s.save_class @klass