Class
Constants
No documentation available
No documentation available
Class Methods
lib/rexml/light/node.rb
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rexml/light/node.rb, line 21
def initialize node=nil
@node = node
if node.kind_of? String
node = [ :text, node ]
elsif node.nil?
node = [ :document, nil, nil ]
elsif node[0] == :start_element
node[0] = :element
elsif node[0] == :start_doctype
node[0] = :doctype
elsif node[0] == :start_document
node[0] = :document
end
end
Create a new element.
Instance Methods
lib/rexml/light/node.rb
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rexml/light/node.rb, line 122
def << element
if node_type() == :text
at(-1) << element
else
newnode = Node.new( element )
newnode.parent = self
self.push( newnode )
end
at(-1)
end
Append a child to this element, optionally under a provided namespace. The namespace argument is ignored if the element argument is an Element
object. Otherwise, the element argument is a string, the namespace (if provided) is the namespace the element is created in.
lib/rexml/light/node.rb
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rexml/light/node.rb, line 98
def =~( path )
XPath.match( self, path )
end
No documentation available
lib/rexml/light/node.rb
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rexml/light/node.rb, line 86
def []( reference, ns=nil )
if reference.kind_of? String
pfx = ''
pfx = "#{prefix(ns)}:" if ns
at(3)["#{pfx}#{reference}"]
elsif reference.kind_of? Range
_old_get( Range.new(4+reference.begin, reference.end, reference.exclude_end?) )
else
_old_get( 4+reference )
end
end
No documentation available
lib/rexml/light/node.rb
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rexml/light/node.rb, line 103
def []=( reference, ns, value=nil )
if reference.kind_of? String
value = ns unless value
at( 3 )[reference] = value
elsif reference.kind_of? Range
_old_put( Range.new(3+reference.begin, reference.end, reference.exclude_end?), ns )
else
if value
_old_put( 4+reference, ns, value )
else
_old_put( 4+reference, ns )
end
end
end
Doesn’t handle namespaces yet
#
lib/rexml/light/node.rb
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rexml/light/node.rb, line 151
def children
self
end
No documentation available
lib/rexml/light/node.rb
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rexml/light/node.rb, line 44
def each
size.times { |x| yield( at(x+4) ) }
end
No documentation available
lib/rexml/light/node.rb
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rexml/light/node.rb, line 147
def has_name?( name, namespace = '' )
at(3) == name and namespace() == namespace
end
No documentation available
lib/rexml/light/node.rb
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rexml/light/node.rb, line 62
def local_name
namesplit
@name
end
No documentation available
lib/rexml/light/node.rb
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rexml/light/node.rb, line 67
def local_name=( name_str )
_old_put( 1, "#@prefix:#{name_str}" )
end
No documentation available
#
lib/rexml/light/node.rb
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rexml/light/node.rb, line 48
def name
at(2)
end
No documentation available
lib/rexml/light/node.rb
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rexml/light/node.rb, line 52
def name=( name_str, ns=nil )
pfx = ''
pfx = "#{prefix(ns)}:" if ns
_old_put(2, "#{pfx}#{name_str}")
end
No documentation available
lib/rexml/light/node.rb
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rexml/light/node.rb, line 75
def namespace( prefix=prefix() )
namespace_of( self, prefix )
end
No documentation available
lib/rexml/light/node.rb
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rexml/light/node.rb, line 79
def namespace=( namespace )
@prefix = prefix( namespace )
pfx = ''
pfx = "#@prefix:" if @prefix.size > 0
_old_put(1, "#{pfx}#@name")
end
No documentation available
lib/rexml/light/node.rb
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rexml/light/node.rb, line 172
def namespace_of( node, prefix=nil )
if not prefix
name = at(2)
name =~ NAMESPLIT
prefix = $1
end
to_find = 'xmlns'
to_find = "xmlns:#{prefix}" if not prefix.nil?
ns = at(3)[ to_find ]
ns ? ns : namespace_of( @node[0], prefix )
end
No documentation available
lib/rexml/light/node.rb
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rexml/light/node.rb, line 165
def namesplit
return if @name.defined?
at(2) =~ NAMESPLIT
@prefix = '' || $1
@name = $2
end
No documentation available
lib/rexml/light/node.rb
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rexml/light/node.rb, line 133
def node_type
_old_get(0)
end
No documentation available
#
lib/rexml/light/node.rb
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rexml/light/node.rb, line 155
def parent
at(1)
end
No documentation available
lib/rexml/light/node.rb
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rexml/light/node.rb, line 58
def parent=( node )
_old_put(1,node)
end
No documentation available
lib/rexml/light/node.rb
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rexml/light/node.rb, line 71
def prefix( namespace=nil )
prefix_of( self, namespace )
end
No documentation available
lib/rexml/light/node.rb
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rexml/light/node.rb, line 184
def prefix_of( node, namespace=nil )
if not namespace
name = node.name
name =~ NAMESPLIT
$1
else
ns = at(3).find { |k,v| v == namespace }
ns ? ns : prefix_of( node.parent, namespace )
end
end
No documentation available
#
lib/rexml/light/node.rb
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rexml/light/node.rb, line 142
def root
context = self
context = context.at(1) while context.at(1)
end
No documentation available
#
lib/rexml/light/node.rb
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rexml/light/node.rb, line 36
def size
if PARENTS.include? @node[0]
@node[-1].size
else
0
end
end
No documentation available
lib/rexml/light/node.rb
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rexml/light/node.rb, line 137
def text=( foo )
replace = at(4).kind_of?(String)? 1 : 0
self._old_put(4,replace, normalizefoo)
end
No documentation available
#
lib/rexml/light/node.rb
View on GitHub
# File tmp/rubies/ruby-2.6.10/lib/rexml/light/node.rb, line 159
def to_s
end
No documentation available