зеркало из https://github.com/github/ruby.git
* 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:
Родитель
f1ef3d600d
Коммит
2d579c0074
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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}"
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче