summaryrefslogtreecommitdiff
path: root/jni/ruby/lib/rdoc/markup/indented_paragraph.rb
diff options
context:
space:
mode:
Diffstat (limited to 'jni/ruby/lib/rdoc/markup/indented_paragraph.rb')
-rw-r--r--jni/ruby/lib/rdoc/markup/indented_paragraph.rb47
1 files changed, 47 insertions, 0 deletions
diff --git a/jni/ruby/lib/rdoc/markup/indented_paragraph.rb b/jni/ruby/lib/rdoc/markup/indented_paragraph.rb
new file mode 100644
index 0000000..1b8a8c7
--- /dev/null
+++ b/jni/ruby/lib/rdoc/markup/indented_paragraph.rb
@@ -0,0 +1,47 @@
+##
+# An Indented Paragraph of text
+
+class RDoc::Markup::IndentedParagraph < RDoc::Markup::Raw
+
+ ##
+ # The indent in number of spaces
+
+ attr_reader :indent
+
+ ##
+ # Creates a new IndentedParagraph containing +parts+ indented with +indent+
+ # spaces
+
+ def initialize indent, *parts
+ @indent = indent
+
+ super(*parts)
+ end
+
+ def == other # :nodoc:
+ super and indent == other.indent
+ end
+
+ ##
+ # Calls #accept_indented_paragraph on +visitor+
+
+ def accept visitor
+ visitor.accept_indented_paragraph self
+ end
+
+ ##
+ # Joins the raw paragraph text and converts inline HardBreaks to the
+ # +hard_break+ text followed by the indent.
+
+ def text hard_break = nil
+ @parts.map do |part|
+ if RDoc::Markup::HardBreak === part then
+ '%1$s%3$*2$s' % [hard_break, @indent, ' '] if hard_break
+ else
+ part
+ end
+ end.join
+ end
+
+end
+