mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/rdoc/parser/ruby.rb: Ignore methods defined on constants to
prevent modules with the names of constants from appearing in the documentation. * test/rdoc/test_rdoc_parser_ruby.rb: Test for the above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38490 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
d3d00ab8fe
commit
a6ed298df7
3 changed files with 53 additions and 4 deletions
|
@ -1,3 +1,10 @@
|
|||
Thu Dec 20 15:22:59 2012 Eric Hodel <drbrain@segment7.net>
|
||||
|
||||
* lib/rdoc/parser/ruby.rb: Ignore methods defined on constants to
|
||||
prevent modules with the names of constants from appearing in the
|
||||
documentation.
|
||||
* test/rdoc/test_rdoc_parser_ruby.rb: Test for the above.
|
||||
|
||||
Thu Dec 20 16:00:33 2012 Martin Bosslet <Martin.Bosslet@gmail.com>
|
||||
|
||||
* ext/openssl/ossl_cipher.c: add support for Authenticated Encryption
|
||||
|
|
|
@ -1116,6 +1116,18 @@ class RDoc::Parser::Ruby < RDoc::Parser
|
|||
name = name_t2.name
|
||||
prev_container = container
|
||||
container = container.find_module_named(name_t.name)
|
||||
|
||||
unless container then
|
||||
constant = prev_container.constants.find do |const|
|
||||
const.name == name_t.name
|
||||
end
|
||||
|
||||
if constant then
|
||||
parse_method_dummy prev_container
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
unless container then
|
||||
added_container = true
|
||||
obj = name_t.name.split("::").inject(Object) do |state, item|
|
||||
|
@ -1138,10 +1150,7 @@ class RDoc::Parser::Ruby < RDoc::Parser
|
|||
container.record_location @top_level
|
||||
end
|
||||
when TkIDENTIFIER, TkIVAR, TkGVAR then
|
||||
dummy = RDoc::Context.new
|
||||
dummy.parent = container
|
||||
dummy.store = container.store
|
||||
skip_method dummy
|
||||
parse_method_dummy container
|
||||
return
|
||||
when TkTRUE, TkFALSE, TkNIL then
|
||||
klass_name = "#{name_t.name.capitalize}Class"
|
||||
|
@ -1228,6 +1237,16 @@ class RDoc::Parser::Ruby < RDoc::Parser
|
|||
@stats.add_method meth
|
||||
end
|
||||
|
||||
##
|
||||
# Parses a method that needs to be ignored.
|
||||
|
||||
def parse_method_dummy container
|
||||
dummy = RDoc::Context.new
|
||||
dummy.parent = container
|
||||
dummy.store = container.store
|
||||
skip_method dummy
|
||||
end
|
||||
|
||||
##
|
||||
# Extracts +yield+ parameters from +method+
|
||||
|
||||
|
|
|
@ -1525,6 +1525,21 @@ end
|
|||
assert ampersand.singleton
|
||||
end
|
||||
|
||||
def test_parse_method_constant
|
||||
c = RDoc::Constant.new 'CONST', nil, ''
|
||||
m = @top_level.add_class RDoc::NormalModule, 'M'
|
||||
m.add_constant c
|
||||
|
||||
util_parser "def CONST.m() end"
|
||||
|
||||
tk = @parser.get_tk
|
||||
|
||||
@parser.parse_method m, RDoc::Parser::Ruby::NORMAL, tk, @comment
|
||||
|
||||
assert_empty @store.modules_hash.keys
|
||||
assert_equal %w[M], @store.classes_hash.keys
|
||||
end
|
||||
|
||||
def test_parse_method_false
|
||||
util_parser "def false.foo() :bar end"
|
||||
|
||||
|
@ -1766,6 +1781,14 @@ end
|
|||
assert_equal "def \317\211", omega.text
|
||||
end
|
||||
|
||||
def test_parse_method_dummy
|
||||
util_parser ".method() end"
|
||||
|
||||
@parser.parse_method_dummy @top_level
|
||||
|
||||
assert_nil @parser.get_tk
|
||||
end
|
||||
|
||||
def test_parse_method_or_yield_parameters_hash
|
||||
util_parser "({})\n"
|
||||
|
||||
|
|
Loading…
Reference in a new issue