GRAYBYTE WORDPRESS FILE MANAGER4378

Server IP : 198.54.121.189 / Your IP : 216.73.216.224
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/ruby20/lib64/ruby/2.0.0/rexml/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /opt/alt/ruby20/lib64/ruby/2.0.0/rexml//attribute.rb
require "rexml/namespace"
require 'rexml/text'

module REXML
  # Defines an Element Attribute; IE, a attribute=value pair, as in:
  # <element attribute="value"/>.  Attributes can be in their own
  # namespaces.  General users of REXML will not interact with the
  # Attribute class much.
  class Attribute
    include Node
    include Namespace

    # The element to which this attribute belongs
    attr_reader :element
    # The normalized value of this attribute.  That is, the attribute with
    # entities intact.
    attr_writer :normalized
    PATTERN = /\s*(#{NAME_STR})\s*=\s*(["'])(.*?)\2/um

    NEEDS_A_SECOND_CHECK = /(<|&((#{Entity::NAME});|(#0*((?:\d+)|(?:x[a-fA-F0-9]+)));)?)/um

    # Constructor.
    # FIXME: The parser doesn't catch illegal characters in attributes
    #
    # first::
    #   Either: an Attribute, which this new attribute will become a
    #   clone of; or a String, which is the name of this attribute
    # second::
    #   If +first+ is an Attribute, then this may be an Element, or nil.
    #   If nil, then the Element parent of this attribute is the parent
    #   of the +first+ Attribute.  If the first argument is a String,
    #   then this must also be a String, and is the content of the attribute.
    #   If this is the content, it must be fully normalized (contain no
    #   illegal characters).
    # parent::
    #   Ignored unless +first+ is a String; otherwise, may be the Element
    #   parent of this attribute, or nil.
    #
    #
    #  Attribute.new( attribute_to_clone )
    #  Attribute.new( attribute_to_clone, parent_element )
    #  Attribute.new( "attr", "attr_value" )
    #  Attribute.new( "attr", "attr_value", parent_element )
    def initialize( first, second=nil, parent=nil )
      @normalized = @unnormalized = @element = nil
      if first.kind_of? Attribute
        self.name = first.expanded_name
        @unnormalized = first.value
        if second.kind_of? Element
          @element = second
        else
          @element = first.element
        end
      elsif first.kind_of? String
        @element = parent
        self.name = first
        @normalized = second.to_s
      else
        raise "illegal argument #{first.class.name} to Attribute constructor"
      end
    end

    # Returns the namespace of the attribute.
    #
    #  e = Element.new( "elns:myelement" )
    #  e.add_attribute( "nsa:a", "aval" )
    #  e.add_attribute( "b", "bval" )
    #  e.attributes.get_attribute( "a" ).prefix   # -> "nsa"
    #  e.attributes.get_attribute( "b" ).prefix   # -> "elns"
    #  a = Attribute.new( "x", "y" )
    #  a.prefix                                   # -> ""
    def prefix
      pf = super
      if pf == ""
        pf = @element.prefix if @element
      end
      pf
    end

    # Returns the namespace URL, if defined, or nil otherwise
    #
    #  e = Element.new("el")
    #  e.add_attributes({"xmlns:ns", "http://url"})
    #  e.namespace( "ns" )              # -> "http://url"
    def namespace arg=nil
      arg = prefix if arg.nil?
      @element.namespace arg
    end

    # Returns true if other is an Attribute and has the same name and value,
    # false otherwise.
    def ==( other )
      other.kind_of?(Attribute) and other.name==name and other.value==value
    end

    # Creates (and returns) a hash from both the name and value
    def hash
      name.hash + value.hash
    end

    # Returns this attribute out as XML source, expanding the name
    #
    #  a = Attribute.new( "x", "y" )
    #  a.to_string     # -> "x='y'"
    #  b = Attribute.new( "ns:x", "y" )
    #  b.to_string     # -> "ns:x='y'"
    def to_string
      if @element and @element.context and @element.context[:attribute_quote] == :quote
        %Q^#@expanded_name="#{to_s().gsub(/"/, '&quote;')}"^
      else
        "#@expanded_name='#{to_s().gsub(/'/, '&apos;')}'"
      end
    end

    def doctype
      if @element
        doc = @element.document
        doc.doctype if doc
      end
    end

    # Returns the attribute value, with entities replaced
    def to_s
      return @normalized if @normalized

      @normalized = Text::normalize( @unnormalized, doctype )
      @unnormalized = nil
      @normalized
    end

    # Returns the UNNORMALIZED value of this attribute.  That is, entities
    # have been expanded to their values
    def value
      return @unnormalized if @unnormalized
      @unnormalized = Text::unnormalize( @normalized, doctype )
      @normalized = nil
      @unnormalized
    end

    # Returns a copy of this attribute
    def clone
      Attribute.new self
    end

    # Sets the element of which this object is an attribute.  Normally, this
    # is not directly called.
    #
    # Returns this attribute
    def element=( element )
      @element = element

      if @normalized
        Text.check( @normalized, NEEDS_A_SECOND_CHECK, doctype )
      end

      self
    end

    # Removes this Attribute from the tree, and returns true if successfull
    #
    # This method is usually not called directly.
    def remove
      @element.attributes.delete self.name unless @element.nil?
    end

    # Writes this attribute (EG, puts 'key="value"' to the output)
    def write( output, indent=-1 )
      output << to_string
    end

    def node_type
      :attribute
    end

    def inspect
      rv = ""
      write( rv )
      rv
    end

    def xpath
      path = @element.xpath
      path += "/@#{self.expanded_name}"
      return path
    end
  end
end
#vim:ts=2 sw=2 noexpandtab:

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
March 03 2024 22:53:08
root / root
0755
dtd
--
March 03 2024 22:43:33
root / linksafe
0755
formatters
--
March 03 2024 22:43:33
root / linksafe
0755
light
--
March 03 2024 22:43:33
root / linksafe
0755
parsers
--
March 03 2024 22:43:33
root / linksafe
0755
validation
--
March 03 2024 22:43:33
root / linksafe
0755
attlistdecl.rb
1.887 KB
October 02 2009 10:45:39
root / linksafe
0644
attribute.rb
5.395 KB
November 08 2010 20:59:01
root / linksafe
0644
cdata.rb
1.542 KB
May 19 2011 00:07:25
root / linksafe
0644
child.rb
2.628 KB
May 19 2011 00:07:25
root / linksafe
0644
comment.rb
2.136 KB
May 19 2011 00:07:25
root / linksafe
0644
doctype.rb
6.582 KB
December 07 2010 12:10:23
root / linksafe
0644
document.rb
9.518 KB
November 13 2014 13:35:51
root / linksafe
0644
element.rb
43.854 KB
January 03 2013 08:48:22
root / linksafe
0644
encoding.rb
1.125 KB
November 06 2012 00:49:57
root / linksafe
0644
entity.rb
5.531 KB
November 13 2014 13:35:51
root / linksafe
0644
functions.rb
11.266 KB
May 13 2011 17:54:22
root / linksafe
0644
instruction.rb
2.009 KB
October 02 2009 10:45:39
root / linksafe
0644
namespace.rb
1.091 KB
October 02 2009 10:45:39
root / linksafe
0644
node.rb
2.134 KB
May 19 2011 00:07:25
root / linksafe
0644
output.rb
0.507 KB
November 03 2012 05:43:28
root / linksafe
0644
parent.rb
4.327 KB
January 31 2010 06:55:06
root / linksafe
0644
parseexception.rb
1.223 KB
October 30 2010 12:10:56
root / linksafe
0644
quickpath.rb
9.084 KB
May 19 2011 00:07:25
root / linksafe
0644
rexml.rb
1.648 KB
March 26 2013 17:54:43
root / linksafe
0644
sax2listener.rb
3.6 KB
October 02 2009 10:45:39
root / linksafe
0644
source.rb
7.597 KB
November 06 2012 00:49:57
root / linksafe
0644
streamlistener.rb
3.878 KB
October 02 2009 10:45:39
root / linksafe
0644
syncenumerator.rb
0.669 KB
October 02 2009 10:45:39
root / linksafe
0644
text.rb
13.569 KB
March 26 2013 17:54:43
root / linksafe
0644
undefinednamespaceexception.rb
0.205 KB
November 16 2007 01:30:29
root / linksafe
0644
xmldecl.rb
2.683 KB
November 03 2012 05:44:31
root / linksafe
0644
xmltokens.rb
0.514 KB
April 05 2010 21:08:12
root / linksafe
0644
xpath.rb
3.313 KB
May 18 2011 21:19:18
root / linksafe
0644
xpath_parser.rb
25.698 KB
May 11 2011 22:56:13
root / linksafe
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF