source: extensions/gsdl-video/trunk/installed/cmdline/lib/ruby/1.8/rexml/comment.rb@ 18425

Last change on this file since 18425 was 18425, checked in by davidb, 15 years ago

Video extension to Greenstone

File size: 1.9 KB
Line 
1require "rexml/child"
2
3module REXML
4 ##
5 # Represents an XML comment; that is, text between \<!-- ... -->
6 class Comment < Child
7 include Comparable
8 START = "<!--"
9 STOP = "-->"
10
11 # The content text
12
13 attr_accessor :string
14
15 ##
16 # Constructor. The first argument can be one of three types:
17 # @param first If String, the contents of this comment are set to the
18 # argument. If Comment, the argument is duplicated. If
19 # Source, the argument is scanned for a comment.
20 # @param second If the first argument is a Source, this argument
21 # should be nil, not supplied, or a Parent to be set as the parent
22 # of this object
23 def initialize( first, second = nil )
24 #puts "IN COMMENT CONSTRUCTOR; SECOND IS #{second.type}"
25 super(second)
26 if first.kind_of? String
27 @string = first
28 elsif first.kind_of? Comment
29 @string = first.string
30 end
31 end
32
33 def clone
34 Comment.new self
35 end
36
37 # output::
38 # Where to write the string
39 # indent::
40 # An integer. If -1, no indenting will be used; otherwise, the
41 # indentation will be this number of spaces, and children will be
42 # indented an additional amount.
43 # transitive::
44 # Ignored by this class. The contents of comments are never modified.
45 # ie_hack::
46 # Needed for conformity to the child API, but not used by this class.
47 def write( output, indent=-1, transitive=false, ie_hack=false )
48 indent( output, indent )
49 output << START
50 output << @string
51 output << STOP
52 end
53
54 alias :to_s :string
55
56 ##
57 # Compares this Comment to another; the contents of the comment are used
58 # in the comparison.
59 def <=>(other)
60 other.to_s <=> @string
61 end
62
63 ##
64 # Compares this Comment to another; the contents of the comment are used
65 # in the comparison.
66 def ==( other )
67 other.kind_of? Comment and
68 (other <=> self) == 0
69 end
70
71 def node_type
72 :comment
73 end
74 end
75end
76#vim:ts=2 sw=2 noexpandtab:
Note: See TracBrowser for help on using the repository browser.