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 92
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 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

Public Instance Methods

==( other ) click to toggle source
# 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
clone() click to toggle source
# File lib/rexml/xmldecl.rb, line 39
def clone
  XMLDecl.new(self)
end
dowrite() click to toggle source
# File lib/rexml/xmldecl.rb, line 102
def dowrite
  @writethis = true
end
encoding=( enc ) click to toggle source
# 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
Also aliased as: old_enc=
inspect() click to toggle source
# File lib/rexml/xmldecl.rb, line 106
def inspect
  "#{START} ... #{STOP}"
end
node_type() click to toggle source
# File lib/rexml/xmldecl.rb, line 69
def node_type
  :xmldecl
end
nowrite() click to toggle source
# File lib/rexml/xmldecl.rb, line 98
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 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) click to toggle source
# File lib/rexml/xmldecl.rb, line 63
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 111
def content(enc)
  context = nil
  context = parent.context if parent
  if context and context[:prologue_quote] == :quote
    quote = "\""
  else
    quote = "'"
  end

  rv = "version=#{quote}#{@version}#{quote}"
  if @writeencoding or enc !~ /\Autf-8\z/i
    rv << " encoding=#{quote}#{enc}#{quote}"
  end
  if @standalone
    rv << " standalone=#{quote}#{@standalone}#{quote}"
  end
  rv
end