# class RSS::XML::Element

### Attributes

attributes[R]
children[R]
name[R]
prefix[R]
uri[R]

### Public Class Methods

new(name, prefix=nil, uri=nil, attributes={}, children=[]) click to toggle source

    # File lib/rss/xml.rb, line 10
    def initialize(name, prefix=nil, uri=nil, attributes={}, children=[])
      @name = name
      @prefix = prefix
      @uri = uri
      @attributes = attributes
      if children.is_a?(String) or !children.respond_to?(:each)
        @children = [children]
      else
        @children = children
      end
    end

### Public Instance Methods

<<(child) click to toggle source

    # File lib/rss/xml.rb, line 30
    def <<(child)
      @children << child
    end

==(other) click to toggle source

    # File lib/rss/xml.rb, line 38
    def ==(other)
      other.kind_of?(self.class) and
        @name == other.name and
        @uri == other.uri and
        @attributes == other.attributes and
        @children == other.children
    end

[](name) click to toggle source

    # File lib/rss/xml.rb, line 22
    def [](name)
      @attributes[name]
    end

[]=(name, value) click to toggle source

    # File lib/rss/xml.rb, line 26
    def []=(name, value)
      @attributes[name] = value
    end

each(&block) click to toggle source

    # File lib/rss/xml.rb, line 34
    def each(&block)
      @children.each(&block)
    end

full_name() click to toggle source

    # File lib/rss/xml.rb, line 63
    def full_name
      if @prefix
        "#{@prefix}:#{@name}"
      else
        @name
      end
    end

to_s() click to toggle source

    # File lib/rss/xml.rb, line 46
    def to_s
      rv = "<#{full_name}"
      attributes.each do |key, value|
        rv << " #{Utils.html_escape(key)}=\"#{Utils.html_escape(value)}\""
      end
      if children.empty?
        rv << "/>"
      else
        rv << ">"
        children.each do |child|
          rv << child.to_s
        end
        rv << "</#{full_name}>"
      end
      rv
    end