OXIESEC PANEL
- Current Dir:
/
/
usr
/
lib
/
ruby
/
2.5.0
/
rexml
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/09/2024 07:14:11 AM
rwxr-xr-x
📄
attlistdecl.rb
1.92 KB
12/16/2015 05:07:31 AM
rw-r--r--
📄
attribute.rb
5.53 KB
07/22/2016 01:39:49 AM
rw-r--r--
📄
cdata.rb
1.58 KB
12/12/2017 11:56:25 AM
rw-r--r--
📄
child.rb
2.66 KB
12/16/2015 05:07:31 AM
rw-r--r--
📄
comment.rb
2.12 KB
12/12/2017 11:56:25 AM
rw-r--r--
📄
doctype.rb
7.64 KB
05/15/2023 11:41:43 AM
rw-r--r--
📄
document.rb
9.51 KB
12/16/2015 05:07:31 AM
rw-r--r--
📁
dtd
-
05/09/2024 07:14:11 AM
rwxr-xr-x
📄
element.rb
44.38 KB
12/12/2017 11:56:25 AM
rw-r--r--
📄
encoding.rb
1.16 KB
12/16/2015 05:07:31 AM
rw-r--r--
📄
entity.rb
5.39 KB
11/02/2017 08:06:38 PM
rw-r--r--
📁
formatters
-
05/09/2024 07:14:11 AM
rwxr-xr-x
📄
functions.rb
11.9 KB
08/13/2017 12:14:24 PM
rw-r--r--
📄
instruction.rb
2.05 KB
12/12/2017 11:56:25 AM
rw-r--r--
📁
light
-
05/09/2024 07:14:11 AM
rwxr-xr-x
📄
namespace.rb
1.12 KB
12/16/2015 05:07:31 AM
rw-r--r--
📄
node.rb
2.17 KB
12/12/2017 11:56:25 AM
rw-r--r--
📄
output.rb
550 bytes
12/16/2015 05:07:31 AM
rw-r--r--
📄
parent.rb
4.27 KB
12/16/2015 05:07:31 AM
rw-r--r--
📄
parseexception.rb
1.25 KB
12/16/2015 05:07:31 AM
rw-r--r--
📁
parsers
-
05/09/2024 07:14:11 AM
rwxr-xr-x
📄
quickpath.rb
9.12 KB
05/17/2016 01:15:57 PM
rw-r--r--
📄
rexml.rb
1.32 KB
05/15/2023 11:41:43 AM
rw-r--r--
📄
sax2listener.rb
3.61 KB
12/16/2015 05:07:31 AM
rw-r--r--
📄
security.rb
824 bytes
12/16/2015 05:07:31 AM
rw-r--r--
📄
source.rb
7.64 KB
12/16/2015 05:07:31 AM
rw-r--r--
📄
streamlistener.rb
3.84 KB
12/16/2015 05:07:31 AM
rw-r--r--
📄
syncenumerator.rb
716 bytes
12/16/2015 05:07:31 AM
rw-r--r--
📄
text.rb
13.78 KB
12/12/2017 11:56:25 AM
rw-r--r--
📄
undefinednamespaceexception.rb
241 bytes
12/16/2015 05:07:31 AM
rw-r--r--
📁
validation
-
05/09/2024 07:14:11 AM
rwxr-xr-x
📄
xmldecl.rb
2.71 KB
12/16/2015 05:07:31 AM
rw-r--r--
📄
xmltokens.rb
2.32 KB
12/16/2015 05:07:31 AM
rw-r--r--
📄
xpath.rb
3.34 KB
12/16/2015 05:07:31 AM
rw-r--r--
📄
xpath_parser.rb
20.44 KB
05/17/2016 01:15:57 PM
rw-r--r--
Editing: parent.rb
Close
# frozen_string_literal: false require "rexml/child" module REXML # A parent has children, and has methods for accessing them. The Parent # class is never encountered except as the superclass for some other # object. class Parent < Child include Enumerable # Constructor # @param parent if supplied, will be set as the parent of this object def initialize parent=nil super(parent) @children = [] end def add( object ) object.parent = self @children << object object end alias :push :add alias :<< :push def unshift( object ) object.parent = self @children.unshift object end def delete( object ) found = false @children.delete_if {|c| c.equal?(object) and found = true } object.parent = nil if found found ? object : nil end def each(&block) @children.each(&block) end def delete_if( &block ) @children.delete_if(&block) end def delete_at( index ) @children.delete_at index end def each_index( &block ) @children.each_index(&block) end # Fetches a child at a given index # @param index the Integer index of the child to fetch def []( index ) @children[index] end alias :each_child :each # Set an index entry. See Array.[]= # @param index the index of the element to set # @param opt either the object to set, or an Integer length # @param child if opt is an Integer, this is the child to set # @return the parent (self) def []=( *args ) args[-1].parent = self @children[*args[0..-2]] = args[-1] end # Inserts an child before another child # @param child1 this is either an xpath or an Element. If an Element, # child2 will be inserted before child1 in the child list of the parent. # If an xpath, child2 will be inserted before the first child to match # the xpath. # @param child2 the child to insert # @return the parent (self) def insert_before( child1, child2 ) if child1.kind_of? String child1 = XPath.first( self, child1 ) child1.parent.insert_before child1, child2 else ind = index(child1) child2.parent.delete(child2) if child2.parent @children[ind,0] = child2 child2.parent = self end self end # Inserts an child after another child # @param child1 this is either an xpath or an Element. If an Element, # child2 will be inserted after child1 in the child list of the parent. # If an xpath, child2 will be inserted after the first child to match # the xpath. # @param child2 the child to insert # @return the parent (self) def insert_after( child1, child2 ) if child1.kind_of? String child1 = XPath.first( self, child1 ) child1.parent.insert_after child1, child2 else ind = index(child1)+1 child2.parent.delete(child2) if child2.parent @children[ind,0] = child2 child2.parent = self end self end def to_a @children.dup end # Fetches the index of a given child # @param child the child to get the index of # @return the index of the child, or nil if the object is not a child # of this parent. def index( child ) count = -1 @children.find { |i| count += 1 ; i.hash == child.hash } count end # @return the number of children of this parent def size @children.size end alias :length :size # Replaces one child with another, making sure the nodelist is correct # @param to_replace the child to replace (must be a Child) # @param replacement the child to insert into the nodelist (must be a # Child) def replace_child( to_replace, replacement ) @children.map! {|c| c.equal?( to_replace ) ? replacement : c } to_replace.parent = nil replacement.parent = self end # Deeply clones this object. This creates a complete duplicate of this # Parent, including all descendants. def deep_clone cl = clone() each do |child| if child.kind_of? Parent cl << child.deep_clone else cl << child.clone end end cl end alias :children :to_a def parent? true end end end