Class: REXML::XMLDecl

Inherits:
Child show all
Includes:
Encoding
Defined in:
lib/rexml/xmldecl.rb

Overview

NEEDS DOCUMENTATION

Constant Summary

DEFAULT_VERSION =
"1.0"
DEFAULT_ENCODING =
"UTF-8"
DEFAULT_STANDALONE =
"no"
START =
'<\?xml'
STOP =
'\?>'

Instance Attribute Summary (collapse)

Attributes included from Encoding

#encoding

Attributes inherited from Child

#parent

Class Method Summary (collapse)

Instance Method Summary (collapse)

Methods included from Encoding

#decode, #encode

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, #to_s

Constructor Details

- (XMLDecl) initialize(version = DEFAULT_VERSION, encoding = nil, standalone = nil)

A new instance of XMLDecl



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/rexml/xmldecl.rb', line 18

def initialize(version=DEFAULT_VERSION, encoding=nil, standalone=nil)
  @writethis = true
  @writeencoding = !encoding.nil?
  if version.kind_of? XMLDecl
    super()
    @version = version.version
    self.encoding = version.encoding
    @writeencoding = version.writeencoding
    @standalone = version.standalone
  else
    super()
    @version = version
    self.encoding = encoding
    @standalone = standalone
  end
  @version = DEFAULT_VERSION if @version.nil?
end

Instance Attribute Details

- (Object) standalone Also known as: stand_alone?

Returns the value of attribute standalone



15
16
17
# File 'lib/rexml/xmldecl.rb', line 15

def standalone
  @standalone
end

- (Object) version

Returns the value of attribute version



15
16
17
# File 'lib/rexml/xmldecl.rb', line 15

def version
  @version
end

- (Object) writeencoding (readonly)

Returns the value of attribute writeencoding



16
17
18
# File 'lib/rexml/xmldecl.rb', line 16

def writeencoding
  @writeencoding
end

- (Object) writethis (readonly)

Returns the value of attribute writethis



16
17
18
# File 'lib/rexml/xmldecl.rb', line 16

def writethis
  @writethis
end

Class Method Details

+ (Object) default

Only use this if you do not want the XML declaration to be written; this object is ignored by the XML writer. Otherwise, instantiate your own XMLDecl and add it to the document.

Note that XML 1.1 documents must include an XML declaration



89
90
91
92
93
# File 'lib/rexml/xmldecl.rb', line 89

def XMLDecl.default
  rv = XMLDecl.new( "1.0" )
  rv.nowrite
  rv
end

Instance Method Details

- (Object) ==(other)



53
54
55
56
57
58
# File 'lib/rexml/xmldecl.rb', line 53

def ==( other )
  other.kind_of?(XMLDecl) and
  other.version == @version and
  other.encoding == self.encoding and
  other.standalone == @standalone
end

- (Object) clone



36
37
38
# File 'lib/rexml/xmldecl.rb', line 36

def clone
  XMLDecl.new(self)
end

- (Object) dowrite



99
100
101
# File 'lib/rexml/xmldecl.rb', line 99

def dowrite
  @writethis = true
end

- (Object) encoding=(enc)



73
74
75
76
77
78
79
80
81
82
# File 'lib/rexml/xmldecl.rb', line 73

def encoding=( enc )
  if enc.nil?
    self.old_enc = "UTF-8"
    @writeencoding = false
  else
    self.old_enc = enc
    @writeencoding = true
  end
  self.dowrite
end

- (Object) inspect



103
104
105
# File 'lib/rexml/xmldecl.rb', line 103

def inspect
  START.sub(/\\/u, '') + " ... " + STOP.sub(/\\/u, '')
end

- (Object) node_type



66
67
68
# File 'lib/rexml/xmldecl.rb', line 66

def node_type
  :xmldecl
end

- (Object) nowrite



95
96
97
# File 'lib/rexml/xmldecl.rb', line 95

def nowrite
  @writethis = false
end

- (Object) old_enc=



71
# File 'lib/rexml/xmldecl.rb', line 71

alias :old_enc= :encoding=

- (Object) write(writer, indent = -1,, transitive = false, ie_hack = false)

indent

Ignored. There must be no whitespace before an XML declaration

transitive

Ignored

ie_hack

Ignored



46
47
48
49
50
51
# File 'lib/rexml/xmldecl.rb', line 46

def write(writer, indent=-1, transitive=false, ie_hack=false)
  return nil unless @writethis or writer.kind_of? Output
  writer << START.sub(/\\/u, '')
  writer << " #{content encoding}"
  writer << STOP.sub(/\\/u, '')
end

- (Object) xmldecl(version, encoding, standalone)



60
61
62
63
64
# File 'lib/rexml/xmldecl.rb', line 60

def xmldecl version, encoding, standalone
  @version = version
  self.encoding = encoding
  @standalone = standalone
end