Class: REXML::Comment

Inherits:
Child show all
Includes:
Comparable
Defined in:
lib/extensions/rexml/rexml/comment.rb,
lib/extensions/rhoxml/rexml/document.rb

Overview

Represents an XML comment; that is, text between <!– … –>

Constant Summary collapse

START =
"<!--"
STOP =
"-->"

Instance Attribute Summary collapse

Attributes inherited from Child

#parent

Instance Method Summary collapse

Methods included from Comparable

#<, #<=, #>, #>=, #between?

Methods inherited from Child

#bytes, #document, #next_sibling=, #previous_sibling=, #remove, #replace_with

Methods included from Node

#each_recursive, #find_first_recursive, #indent, #index_in_parent, #next_sibling_node, #parent?, #previous_sibling_node

Constructor Details

#initialize(first, second = nil) ⇒ Comment

Constructor. The first argument can be one of three types: argument. If Comment, the argument is duplicated. If Source, the argument is scanned for a comment. should be nil, not supplied, or a Parent to be set as the parent of this object

Parameters:

  • first

    If String, the contents of this comment are set to the

  • second (defaults to: nil)

    If the first argument is a Source, this argument



23
24
25
26
27
28
29
30
31
# File 'lib/extensions/rexml/rexml/comment.rb', line 23

def initialize( first, second = nil )
  #puts "IN COMMENT CONSTRUCTOR; SECOND IS #{second.type}"
  super(second)
  if first.kind_of? String
    @string = first
  elsif first.kind_of? Comment
    @string = first.string
  end
end

Instance Attribute Details

#stringObject Also known as: to_s

The content text



13
14
15
# File 'lib/extensions/rexml/rexml/comment.rb', line 13

def string
  @string
end

Instance Method Details

#<=>(other) ⇒ Object

Compares this Comment to another; the contents of the comment are used in the comparison.



63
64
65
# File 'lib/extensions/rexml/rexml/comment.rb', line 63

def <=>(other)
  other.to_s <=> @string
end

#==(other) ⇒ Object

Compares this Comment to another; the contents of the comment are used in the comparison.



70
71
72
73
# File 'lib/extensions/rexml/rexml/comment.rb', line 70

def ==( other )
  other.kind_of?( Comment ) and
  (other <=> self) == 0
end

#cloneObject



33
34
35
# File 'lib/extensions/rexml/rexml/comment.rb', line 33

def clone
  Comment.new self
end

#node_typeObject



75
76
77
# File 'lib/extensions/rexml/rexml/comment.rb', line 75

def node_type
  :comment
end

#write(output, indent = -1,, transitive = false, ie_hack = false) ⇒ Object

DEPRECATED

See REXML::Formatters

output

Where to write the string

indent

An integer. If -1, no indenting will be used; otherwise, the indentation will be this number of spaces, and children will be indented an additional amount.

transitive

Ignored by this class. The contents of comments are never modified.

ie_hack

Needed for conformity to the child API, but not used by this class.



50
51
52
53
54
55
56
# File 'lib/extensions/rexml/rexml/comment.rb', line 50

def write( output, indent=-1, transitive=false, ie_hack=false )
  Kernel.warn("Comment.write is deprecated.  See REXML::Formatters")
  indent( output, indent )
  output << START
  output << @string
  output << STOP
end