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 =
'\?>'

Constants included from Encoding

Encoding::UNILE, Encoding::UTF_16, Encoding::UTF_8

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

apply, #check_encoding, #decode_ascii, #decode_iconv, #decode_unile, #decode_utf8, #encode_ascii, #encode_iconv, #encode_unile, #encode_utf8, encoding_method, register

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.



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

#standaloneObject 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

#versionObject

Returns the value of attribute version.



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

def version
  @version
end

#writeencodingObject (readonly)

Returns the value of attribute writeencoding.



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

def writeencoding
  @writeencoding
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



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

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

Instance Method Details

#==(other) ⇒ Object



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

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

#cloneObject



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

def clone
	XMLDecl.new(self)
end

#dowriteObject



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

def dowrite
  @writethis = true
end

#encoding=(enc) ⇒ Object



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

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



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

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

#node_typeObject



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

def node_type
	:xmldecl
end

#nowriteObject



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

def nowrite
  @writethis = false
end

#old_enc=Object



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

alias :old_enc= :encoding=

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



40
41
42
43
44
45
46
47
48
49
50
# File 'lib/rexml/xmldecl.rb', line 40

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

#xmldecl(version, encoding, standalone) ⇒ Object



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

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