[前][次][番号順一覧][スレッド一覧]

ruby-changes:18734

From: drbrain <ko1@a...>
Date: Wed, 2 Feb 2011 14:52:19 +0900 (JST)
Subject: [ruby-changes:18734] Ruby:r30761 (trunk): Commit files I forgot to add

drbrain	2011-02-02 14:52:11 +0900 (Wed, 02 Feb 2011)

  New Revision: 30761

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=30761

  Log:
    Commit files I forgot to add

  Added files:
    trunk/lib/rdoc/markup/to_tt_only.rb
    trunk/test/rdoc/test_rdoc_markup_to_tt_only.rb
    trunk/test/rdoc/test_rdoc_single_class.rb
  Modified files:
    trunk/ChangeLog

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 30760)
+++ ChangeLog	(revision 30761)
@@ -1,3 +1,9 @@
+Wed Feb  2 14:51:08 2011  Eric Hodel  <drbrain@s...>
+
+	* lib/rdoc/markup/to_tt_only.rb: commit miss
+	* test/rdoc/test_rdoc_markup_to_tt_only.rb: ditto
+	* test/rdoc/test_rdoc_single_class.rb: ditto
+
 Wed Feb  2 09:27:53 2011  Eric Hodel  <drbrain@s...>
 
 	* lib/rdoc: Upgrade to RDoc 3.5.1
Index: lib/rdoc/markup/to_tt_only.rb
===================================================================
--- lib/rdoc/markup/to_tt_only.rb	(revision 0)
+++ lib/rdoc/markup/to_tt_only.rb	(revision 30761)
@@ -0,0 +1,114 @@
+require 'rdoc/markup/formatter'
+require 'rdoc/markup/inline'
+
+##
+# Extracts sections of text enclosed in plus, tt or code.  Used to discover
+# undocumented parameters.
+
+class RDoc::Markup::ToTtOnly < RDoc::Markup::Formatter
+
+  ##
+  # Stack of list types
+
+  attr_reader :list_type
+
+  ##
+  # Output accumulator
+
+  attr_reader :res
+
+  ##
+  # Creates a new tt-only formatter.
+
+  def initialize
+    super
+
+    add_tag :TT, nil, nil
+  end
+
+  ##
+  # Pops the list type for +list+ from #list_type
+
+  def accept_list_end list
+    @list_type.pop
+  end
+
+  ##
+  # Pushes the list type for +list+ onto #list_type
+
+  def accept_list_start list
+    @list_type << list.type
+  end
+
+  ##
+  # Prepares the visitor for consuming +list_item+
+
+  def accept_list_item_start list_item
+    case @list_type.last
+    when :NOTE, :LABEL then
+      tt_sections(list_item.label)
+    end
+  end
+
+  ##
+  # Adds +paragraph+ to the output
+
+  def accept_paragraph paragraph
+    tt_sections(paragraph.text)
+  end
+
+  ##
+  # Does nothing to +markup_item+ because it doesn't have any user-built
+  # content
+
+  def do_nothing markup_item
+  end
+
+  alias accept_blank_line    do_nothing # :nodoc:
+  alias accept_heading       do_nothing # :nodoc:
+  alias accept_list_item_end do_nothing # :nodoc:
+  alias accept_raw           do_nothing # :nodoc:
+  alias accept_rule          do_nothing # :nodoc:
+  alias accept_verbatim      do_nothing # :nodoc:
+
+  ##
+  # Extracts tt sections from +text+
+
+  def tt_sections text
+    flow = @am.flow text.dup
+
+    flow.each do |item|
+      case item
+      when String then
+        @res << item if in_tt?
+      when RDoc::Markup::AttrChanger then
+        off_tags res, item
+        on_tags res, item
+      when RDoc::Markup::Special then
+        @res << convert_special(item) if in_tt? # TODO can this happen?
+      else
+        raise "Unknown flow element: #{item.inspect}"
+      end
+    end
+
+    res
+  end
+
+  ##
+  # Returns an Array of items that were wrapped in plus, tt or code.
+
+  def end_accepting
+    @res.compact
+  end
+
+  ##
+  # Prepares the visitor for gathering tt sections
+
+  def start_accepting
+    @res = []
+
+    @list_type = []
+  end
+
+end
+
Index: test/rdoc/test_rdoc_markup_to_tt_only.rb
===================================================================
--- test/rdoc/test_rdoc_markup_to_tt_only.rb	(revision 0)
+++ test/rdoc/test_rdoc_markup_to_tt_only.rb	(revision 30761)
@@ -0,0 +1,225 @@
+require 'rubygems'
+require 'rdoc/markup/formatter_test_case'
+require 'rdoc/markup/to_tt_only'
+require 'minitest/autorun'
+
+class TestRDocMarkupToTtOnly < RDoc::Markup::FormatterTestCase
+
+  add_visitor_tests
+
+  def setup
+    super
+
+    @to = RDoc::Markup::ToTtOnly.new
+  end
+
+  def accept_blank_line
+    assert_empty @to.end_accepting
+  end
+
+  def accept_heading
+    assert_empty @to.end_accepting
+  end
+
+  def accept_list_end_bullet
+    assert_empty @to.res
+  end
+
+  def accept_list_end_label
+    assert_empty @to.res
+  end
+
+  def accept_list_end_lalpha
+    assert_empty @to.res
+  end
+
+  def accept_list_end_note
+    assert_empty @to.res
+  end
+
+  def accept_list_end_number
+    assert_empty @to.res
+  end
+
+  def accept_list_end_ualpha
+    assert_empty @to.res
+  end
+
+  def accept_list_item_end_bullet
+    assert_empty @to.res
+  end
+
+  def accept_list_item_end_label
+    assert_empty @to.res
+  end
+
+  def accept_list_item_end_lalpha
+    assert_empty @to.res
+  end
+
+  def accept_list_item_end_note
+    assert_empty @to.res
+  end
+
+  def accept_list_item_end_number
+    assert_empty @to.res
+  end
+
+  def accept_list_item_end_ualpha
+    assert_empty @to.res
+  end
+
+  def accept_list_item_start_bullet
+    assert_empty @to.res
+  end
+
+  def accept_list_item_start_label
+    assert_empty @to.res
+  end
+
+  def accept_list_item_start_lalpha
+    assert_empty @to.res
+  end
+
+  def accept_list_item_start_note
+    assert_empty @to.res
+  end
+
+  def accept_list_item_start_number
+    assert_empty @to.res
+  end
+
+  def accept_list_item_start_ualpha
+    assert_empty @to.res
+  end
+
+  def accept_list_start_bullet
+    assert_empty @to.res
+  end
+
+  def accept_list_start_label
+    assert_empty @to.res
+  end
+
+  def accept_list_start_lalpha
+    assert_empty @to.res
+  end
+
+  def accept_list_start_note
+    assert_empty @to.res
+  end
+
+  def accept_list_start_number
+    assert_empty @to.res
+  end
+
+  def accept_list_start_ualpha
+    assert_empty @to.res
+  end
+
+  def accept_paragraph
+    assert_empty @to.end_accepting
+  end
+
+  def accept_raw
+    assert_empty @to.end_accepting
+  end
+
+  def accept_rule
+    assert_empty @to.end_accepting
+  end
+
+  def accept_verbatim
+    assert_empty @to.end_accepting
+  end
+
+  def end_accepting
+    assert_equal %w[hi], @to.end_accepting
+  end
+
+  def start_accepting
+    assert_empty @to.end_accepting
+  end
+
+  def accept_heading_1
+    assert_empty @to.end_accepting
+  end
+
+  def accept_heading_2
+    assert_empty @to.end_accepting
+  end
+
+  def accept_heading_3
+    assert_empty @to.end_accepting
+  end
+
+  def accept_heading_4
+    assert_empty @to.end_accepting
+  end
+
+  def accept_heading_indent
+    assert_empty @to.end_accepting
+  end
+
+  def accept_heading_b
+    assert_empty @to.end_accepting
+  end
+
+  def accept_heading_suppressed_crossref
+    assert_empty @to.end_accepting
+  end
+
+  def accept_list_item_start_note_2
+    assert_equal [nil, 'teletype', nil], @to.res
+  end
+
+  def accept_paragraph_b
+    assert_empty @to.end_accepting
+  end
+
+  def accept_paragraph_i
+    assert_empty @to.end_accepting
+  end
+
+  def accept_paragraph_indent
+    assert_empty @to.end_accepting
+  end
+
+  def accept_paragraph_plus
+    assert_equal %w[teletype], @to.end_accepting
+  end
+
+  def accept_paragraph_star
+    assert_empty @to.end_accepting
+  end
+
+  def accept_paragraph_underscore
+    assert_empty @to.end_accepting
+  end
+
+  def accept_paragraph_wrap
+    assert_empty @to.end_accepting
+  end
+
+  def accept_rule_indent
+    assert_empty @to.end_accepting
+  end
+
+  def accept_verbatim_indent
+    assert_empty @to.end_accepting
+  end
+
+  def accept_verbatim_big_indent
+    assert_empty @to.end_accepting
+  end
+
+  def list_nested
+    assert_empty @to.end_accepting
+  end
+
+  def list_verbatim
+    assert_empty @to.end_accepting
+  end
+
+end
+
Index: test/rdoc/test_rdoc_single_class.rb
===================================================================
--- test/rdoc/test_rdoc_single_class.rb	(revision 0)
+++ test/rdoc/test_rdoc_single_class.rb	(revision 30761)
@@ -0,0 +1,12 @@
+require File.expand_path '../xref_test_case', __FILE__
+
+class TestRDocSingleClass < XrefTestCase
+
+  def test_definition
+    c = RDoc::SingleClass.new 'C'
+
+    assert_equal 'class << C', c.definition
+  end
+
+end
+

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]