GRAYBYTE WORDPRESS FILE MANAGER8891

Server IP : 198.54.121.189 / Your IP : 216.73.216.140
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /opt/alt/ruby26/lib64/ruby/2.6.0/rexml/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /opt/alt/ruby26/lib64/ruby/2.6.0/rexml//parent.rb
# frozen_string_literal: false
require_relative "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

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
March 03 2024 22:47:39
root / root
0755
dtd
--
March 03 2024 22:47:32
root / linksafe
0755
formatters
--
March 03 2024 22:47:32
root / linksafe
0755
light
--
March 03 2024 22:47:32
root / linksafe
0755
parsers
--
March 03 2024 22:47:32
root / linksafe
0755
validation
--
March 03 2024 22:47:32
root / linksafe
0755
attlistdecl.rb
1.924 KB
April 12 2022 11:50:11
root / linksafe
0644
attribute.rb
5.534 KB
April 12 2022 11:50:11
root / linksafe
0644
cdata.rb
1.586 KB
April 12 2022 11:50:11
root / linksafe
0644
child.rb
2.661 KB
April 12 2022 11:50:11
root / linksafe
0644
comment.rb
2.119 KB
April 12 2022 11:50:11
root / linksafe
0644
doctype.rb
7.969 KB
April 12 2022 11:50:11
root / linksafe
0644
document.rb
9.55 KB
April 12 2022 11:50:11
root / linksafe
0644
element.rb
44.501 KB
April 12 2022 11:50:11
root / linksafe
0644
encoding.rb
1.155 KB
April 12 2022 11:50:11
root / linksafe
0644
entity.rb
5.4 KB
April 12 2022 11:50:11
root / linksafe
0644
functions.rb
12.406 KB
April 12 2022 11:50:11
root / linksafe
0644
instruction.rb
2.14 KB
April 12 2022 11:50:11
root / linksafe
0644
namespace.rb
1.402 KB
April 12 2022 11:50:11
root / linksafe
0644
node.rb
2.184 KB
April 12 2022 11:50:11
root / linksafe
0644
output.rb
0.54 KB
April 12 2022 11:50:11
root / linksafe
0644
parent.rb
4.272 KB
April 12 2022 11:50:11
root / linksafe
0644
parseexception.rb
1.253 KB
April 12 2022 11:50:11
root / linksafe
0644
quickpath.rb
9.122 KB
April 12 2022 11:50:11
root / linksafe
0644
rexml.rb
1.288 KB
April 12 2022 11:50:11
root / linksafe
0644
sax2listener.rb
3.606 KB
April 12 2022 11:50:11
root / linksafe
0644
security.rb
0.805 KB
April 12 2022 11:50:11
root / linksafe
0644
source.rb
7.669 KB
April 12 2022 11:50:11
root / linksafe
0644
streamlistener.rb
3.84 KB
April 12 2022 11:50:11
root / linksafe
0644
syncenumerator.rb
0.699 KB
April 12 2022 11:50:11
root / linksafe
0644
text.rb
13.853 KB
April 12 2022 11:50:11
root / linksafe
0644
undefinednamespaceexception.rb
0.238 KB
April 12 2022 11:50:11
root / linksafe
0644
xmldecl.rb
2.91 KB
April 12 2022 11:50:11
root / linksafe
0644
xmltokens.rb
2.324 KB
April 12 2022 11:50:11
root / linksafe
0644
xpath.rb
3.419 KB
April 12 2022 11:50:11
root / linksafe
0644
xpath_parser.rb
28.586 KB
April 12 2022 11:50:11
root / linksafe
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF