summaryrefslogtreecommitdiff
path: root/lib/rexml/cdata.rb
blob: 73358edc2899308861fd850e2c50c91484d33c00 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
require "rexml/text"

module REXML
  class CData < Text
    START = '<![CDATA['
    STOP = ']]>'
    ILLEGAL = /(\]\]>)/

    #   Constructor.  CData is data between <![CDATA[ ... ]]>
    #
    # _Examples_
    #  CData.new( source )
    #  CData.new( "Here is some CDATA" )
    #  CData.new( "Some unprocessed data", respect_whitespace_TF, parent_element )
    def initialize( first, whitespace=true, parent=nil )
      super( first, whitespace, parent, false, true, ILLEGAL )
    end

    # Make a copy of this object
    #
    # _Examples_
    #  c = CData.new( "Some text" )
    #  d = c.clone
    #  d.to_s        # -> "Some text"
    def clone
      CData.new self
    end

    # Returns the content of this CData object
    #
    # _Examples_
    #  c = CData.new( "Some text" )
    #  c.to_s        # -> "Some text"
    def to_s
      @string
    end

    def value
      @string
    end

    # == DEPRECATED
    # See the rexml/formatters package
    #
    # Generates XML output of this object
    #
    # output::
    #   Where to write the string.  Defaults to $stdout
    # indent::
    #   The amount to indent this node by
    # transitive::
    #   Ignored
    # ie_hack::
    #   Ignored
    #
    # _Examples_
    #  c = CData.new( " Some text " )
    #  c.write( $stdout )     #->  <![CDATA[ Some text ]]>
    def write( output=$stdout, indent=-1, transitive=false, ie_hack=false )
      Kernel.warn( "#{self.class.name}.write is deprecated" )
      indent( output, indent )
      output << START
      output << @string
      output << STOP
    end
  end
end