PageRenderTime 117ms CodeModel.GetById 107ms app.highlight 7ms RepoModel.GetById 1ms app.codeStats 0ms

/tools/Ruby/lib/ruby/1.8/rexml/comment.rb

http://github.com/agross/netopenspace
Ruby | 80 lines | 38 code | 10 blank | 32 comment | 2 complexity | 6b83105f940151c711811e663c06d739 MD5 | raw file
 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    # == DEPRECATED
38    # See REXML::Formatters
39    #
40		# output::
41		#	 Where to write the string
42		# indent::
43		#	 An integer.	If -1, no indenting will be used; otherwise, the
44		#	 indentation will be this number of spaces, and children will be
45		#	 indented an additional amount.
46		# transitive::
47		#	 Ignored by this class.	The contents of comments are never modified.
48		# ie_hack::
49		#	 Needed for conformity to the child API, but not used by this class.
50		def write( output, indent=-1, transitive=false, ie_hack=false )
51      Kernel.warn("Comment.write is deprecated.  See REXML::Formatters")
52			indent( output, indent )
53			output << START
54			output << @string
55			output << STOP
56		end
57
58		alias :to_s :string
59
60		##
61		# Compares this Comment to another; the contents of the comment are used
62		# in the comparison.
63		def <=>(other)
64			other.to_s <=> @string
65		end
66
67		##
68		# Compares this Comment to another; the contents of the comment are used
69		# in the comparison.
70		def ==( other )
71			other.kind_of? Comment and
72			(other <=> self) == 0
73		end
74
75    def node_type
76      :comment
77    end
78	end
79end
80#vim:ts=2 sw=2 noexpandtab: