class REXML::XMLDecl

NEEDS DOCUMENTATION

Constants

DEFAULT_ENCODING
DEFAULT_STANDALONE
DEFAULT_VERSION
START
STOP

Attributes

stand_alone?[RW]
standalone[RW]
version[RW]
writeencoding[R]
writethis[R]

Public Class Methods

default() click to toggle source

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

# File lib/rexml/xmldecl.rb, line 89
def XMLDecl.default
  rv = XMLDecl.new( "1.0" )
  rv.nowrite
  rv
end
new(version=DEFAULT_VERSION, encoding=nil, standalone=nil) click to toggle source
Calls superclass method REXML::Child.new
# 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

Public Instance Methods

==( other ) click to toggle source
# 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
clone() click to toggle source
# File lib/rexml/xmldecl.rb, line 36
def clone
  XMLDecl.new(self)
end
dowrite() click to toggle source
# File lib/rexml/xmldecl.rb, line 99
def dowrite
  @writethis = true
end
encoding=( enc ) click to toggle source
# 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
Also aliased as: old_enc=
inspect() click to toggle source
# File lib/rexml/xmldecl.rb, line 103
def inspect
  START.sub(/\/u, '') + " ... " + STOP.sub(/\/u, '')
end
node_type() click to toggle source
# File lib/rexml/xmldecl.rb, line 66
def node_type
  :xmldecl
end
nowrite() click to toggle source
# File lib/rexml/xmldecl.rb, line 95
def nowrite
  @writethis = false
end
old_enc=( enc )
Alias for: encoding=
write(writer, indent=-1, transitive=false, ie_hack=false) click to toggle source
indent

Ignored. There must be no whitespace before an XML declaration

transitive

Ignored

ie_hack

Ignored

# 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
xmldecl(version, encoding, standalone) click to toggle source
# File lib/rexml/xmldecl.rb, line 60
def xmldecl version, encoding, standalone
  @version = version
  self.encoding = encoding
  @standalone = standalone
end

Private Instance Methods

content(enc) click to toggle source
# File lib/rexml/xmldecl.rb, line 108
def content(enc)
  rv = "version='#@version'"
  rv << " encoding='#{enc}'" if @writeencoding || enc !~ /\Autf-8\z/i
  rv << " standalone='#@standalone'" if @standalone
  rv
end