summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--lib/rdoc/markup/attribute_manager.rb2
-rw-r--r--lib/rdoc/method_attr.rb7
-rw-r--r--lib/rdoc/ruby_lex.rb4
-rw-r--r--lib/rdoc/token_stream.rb2
-rw-r--r--test/rdoc/test_rdoc_markup_attribute_manager.rb3
-rw-r--r--test/rdoc/test_rdoc_method_attr.rb27
-rw-r--r--test/rdoc/test_rdoc_ruby_lex.rb11
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 <shibata.hiroshi@gmail.com>
+
+ * lib/rdoc.rb, lib/rdoc, test/rdoc: Update to RDoc 4.2.0.alpha(21b241a)
+
Wed Sep 10 17:52:25 2014 Koichi Sasada <ko1@atdot.net>
* 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