Class: REXML::XMLDecl

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

Overview

NEEDS DOCUMENTATION

Constant Summary collapse

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

#initialize(version = DEFAULT_VERSION, encoding = nil, standalone = nil) ⇒ XMLDecl

Returns a new instance of XMLDecl.



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

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
    @writethis = version.writethis
  else
    super()
    @version = version
    self.encoding = encoding
    @standalone = standalone
  end
  @version = DEFAULT_VERSION if @version.nil?
end

Instance Attribute Details

#standaloneObject Also known as: stand_alone?

Returns the value of attribute standalone



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

def standalone
  @standalone
end

#versionObject

Returns the value of attribute version



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

def version
  @version
end

#writeencodingObject (readonly)

Returns the value of attribute writeencoding



18
19
20
# File 'lib/rexml/xmldecl.rb', line 18

def writeencoding
  @writeencoding
end

#writethisObject (readonly)

Returns the value of attribute writethis



18
19
20
# File 'lib/rexml/xmldecl.rb', line 18

def writethis
  @writethis
end

Class Method Details

.defaultObject

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



92
93
94
95
96
# File 'lib/rexml/xmldecl.rb', line 92

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

Instance Method Details

#==(other) ⇒ Object



56
57
58
59
60
61
# File 'lib/rexml/xmldecl.rb', line 56

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

#cloneObject



39
40
41
# File 'lib/rexml/xmldecl.rb', line 39

def clone
  XMLDecl.new(self)
end

#dowriteObject



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

def dowrite
  @writethis = true
end

#encoding=(enc) ⇒ Object



76
77
78
79
80
81
82
83
84
85
# File 'lib/rexml/xmldecl.rb', line 76

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

#inspectObject



106
107
108
# File 'lib/rexml/xmldecl.rb', line 106

def inspect
  "#{START} ... #{STOP}"
end

#node_typeObject



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

def node_type
  :xmldecl
end

#nowriteObject



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

def nowrite
  @writethis = false
end

#old_enc=Object



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

alias :old_enc= :encoding=

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

indent

Ignored. There must be no whitespace before an XML declaration

transitive

Ignored

ie_hack

Ignored



49
50
51
52
53
54
# File 'lib/rexml/xmldecl.rb', line 49

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

#xmldecl(version, encoding, standalone) ⇒ Object



63
64
65
66
67
# File 'lib/rexml/xmldecl.rb', line 63

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