class RSS::XML::Element - rss: Ruby Standard Library Documentation

# 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 rss-0.3.1/lib/rss/xml.rb, line 11
    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 rss-0.3.1/lib/rss/xml.rb, line 31
    def <<(child)
      @children << child
    end

==(other) click to toggle source

    # File rss-0.3.1/lib/rss/xml.rb, line 39
    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 rss-0.3.1/lib/rss/xml.rb, line 23
    def [](name)
      @attributes[name]
    end

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

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

each(&block) click to toggle source

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

full_name() click to toggle source

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

to_s() click to toggle source

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