From 80325bab52091283f79c6ac6905609a640094833 Mon Sep 17 00:00:00 2001 From: hsbt Date: Thu, 11 Sep 2014 01:03:22 +0000 Subject: * lib/rdoc.rb, lib/rdoc, test/rdoc: Update to RDoc 4.2.0.alpha(21b241a) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47521 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ lib/rdoc/markup/attribute_manager.rb | 2 +- lib/rdoc/method_attr.rb | 7 ++++++- lib/rdoc/ruby_lex.rb | 4 ++-- lib/rdoc/token_stream.rb | 2 +- test/rdoc/test_rdoc_markup_attribute_manager.rb | 3 +++ test/rdoc/test_rdoc_method_attr.rb | 27 +++++++++++++++++++++++++ test/rdoc/test_rdoc_ruby_lex.rb | 11 ++++++++++ 8 files changed, 55 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7a84ca10fb..5b6f6ed2c4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Thu Sep 11 10:03:16 2014 SHIBATA Hiroshi + + * lib/rdoc.rb, lib/rdoc, test/rdoc: Update to RDoc 4.2.0.alpha(21b241a) + Wed Sep 10 17:52:25 2014 Koichi Sasada * compile.c (rb_vm_addr2insn): rename to rb_vm_insn_addr2insn diff --git a/lib/rdoc/markup/attribute_manager.rb b/lib/rdoc/markup/attribute_manager.rb index c5a50d519c..ce4ac76d5b 100644 --- a/lib/rdoc/markup/attribute_manager.rb +++ b/lib/rdoc/markup/attribute_manager.rb @@ -130,7 +130,7 @@ class RDoc::Markup::AttributeManager # first do matching ones tags = @matching_word_pairs.keys.join("") - re = /(^|\W)([#{tags}])([#:\\]?[\w.\/-]+?\S?)\2(\W|$)/ + re = /(^|\W)([#{tags}])([#\\]?[\w:.\/-]+?\S?)\2(\W|$)/ 1 while str.gsub!(re) do attr = @matching_word_pairs[$2] diff --git a/lib/rdoc/method_attr.rb b/lib/rdoc/method_attr.rb index 9af64539c3..a0ea851dc5 100644 --- a/lib/rdoc/method_attr.rb +++ b/lib/rdoc/method_attr.rb @@ -361,7 +361,12 @@ class RDoc::MethodAttr < RDoc::CodeObject end def pretty_print q # :nodoc: - alias_for = @is_alias_for ? "alias for #{@is_alias_for.name}" : nil + alias_for = + if @is_alias_for.respond_to? :name then + "alias for #{@is_alias_for.name}" + elsif Array === @is_alias_for then + "alias for #{@is_alias_for.last}" + end q.group 2, "[#{self.class.name} #{full_name} #{visibility}", "]" do if alias_for then diff --git a/lib/rdoc/ruby_lex.rb b/lib/rdoc/ruby_lex.rb index ce1c25dd6b..91b90ab2cf 100644 --- a/lib/rdoc/ruby_lex.rb +++ b/lib/rdoc/ruby_lex.rb @@ -1184,9 +1184,9 @@ class RDoc::RubyLex str = if ltype == quoted and %w[" ' /].include? ltype then ltype.dup elsif RUBY_VERSION > '1.9' then - "%#{type or PERCENT_LTYPE.key ltype}#{PERCENT_PAREN_REV[quoted]}" + "%#{type or PERCENT_LTYPE.key ltype}#{PERCENT_PAREN_REV[quoted]||quoted}" else - "%#{type or PERCENT_LTYPE.index ltype}#{PERCENT_PAREN_REV[quoted]}" + "%#{type or PERCENT_LTYPE.index ltype}#{PERCENT_PAREN_REV[quoted]||quoted}" end subtype = nil diff --git a/lib/rdoc/token_stream.rb b/lib/rdoc/token_stream.rb index 851bc05bf5..b46b7da2f7 100644 --- a/lib/rdoc/token_stream.rb +++ b/lib/rdoc/token_stream.rb @@ -88,7 +88,7 @@ module RDoc::TokenStream # Returns a string representation of the token stream def tokens_to_s - token_stream.map { |token| token.text }.join '' + token_stream.compact.map { |token| token.text }.join '' end end diff --git a/test/rdoc/test_rdoc_markup_attribute_manager.rb b/test/rdoc/test_rdoc_markup_attribute_manager.rb index 9fe4476229..34615aa625 100644 --- a/test/rdoc/test_rdoc_markup_attribute_manager.rb +++ b/test/rdoc/test_rdoc_markup_attribute_manager.rb @@ -130,6 +130,9 @@ class TestRDocMarkupAttributeManager < RDoc::TestCase assert_equal(["cat ", @tt_on, "and", @tt_off, " dog"], @am.flow("cat +and+ dog")) + assert_equal(["cat ", @tt_on, "X::Y", @tt_off, " dog"], + @am.flow("cat +X::Y+ dog")) + assert_equal(["cat ", @bold_on, "a_b_c", @bold_off, " dog"], @am.flow("cat *a_b_c* dog")) diff --git a/test/rdoc/test_rdoc_method_attr.rb b/test/rdoc/test_rdoc_method_attr.rb index 0120ea6d9e..e93e81cee4 100644 --- a/test/rdoc/test_rdoc_method_attr.rb +++ b/test/rdoc/test_rdoc_method_attr.rb @@ -156,6 +156,33 @@ class TestRDocMethodAttr < XrefTestCase refute_equal @c1_m, @parent_m end + def test_pretty_print + temp_dir do |tmpdir| + s = RDoc::RI::Store.new tmpdir + s.rdoc = @rdoc + + top_level = s.add_file 'file.rb' + meth_bang = RDoc::AnyMethod.new nil, 'method!' + meth_bang.record_location top_level + + meth_bang_alias = RDoc::Alias.new nil, 'method!', 'method_bang', '' + meth_bang_alias.record_location top_level + + klass = top_level.add_class RDoc::NormalClass, 'Object' + klass.add_method meth_bang + + meth_bang.add_alias meth_bang_alias, klass + + s.save + + meth_alias_from_store = s.load_method 'Object', '#method_bang' + + expected = "[RDoc::AnyMethod Object#method_bang public alias for method!]" + actual = mu_pp meth_alias_from_store + assert_equal expected, actual + end + end + def test_to_s assert_equal 'RDoc::AnyMethod: C1#m', @c1_m.to_s assert_equal 'RDoc::AnyMethod: C2#b', @c2_b.to_s diff --git a/test/rdoc/test_rdoc_ruby_lex.rb b/test/rdoc/test_rdoc_ruby_lex.rb index 22cf0f6295..8871b4f412 100644 --- a/test/rdoc/test_rdoc_ruby_lex.rb +++ b/test/rdoc/test_rdoc_ruby_lex.rb @@ -231,6 +231,17 @@ U assert_equal expected, tokens end + def test_class_tokenize_percent_w_quote + tokens = RDoc::RubyLex.tokenize '%w"hi"', nil + + expected = [ + @TK::TkDSTRING.new( 0, 1, 0, '%w"hi"'), + @TK::TkNL .new( 6, 1, 6, "\n"), + ] + + assert_equal expected, tokens + end + def test_class_tokenize_regexp tokens = RDoc::RubyLex.tokenize "/hay/", nil -- cgit v1.2.3