mirror of
https://github.com/ruby/ruby.git
synced 2025-09-15 08:33:58 +02:00
* lib/rss.rb, lib/rss/, test/rss/, sample/rss/: merged from trunk.
- 0.1.6 -> 2.0.0. - fixed image module URI. Thanks to Dmitry Borodaenko. - supported Atom. - supported ITunes module. - supported Slash module. * NEWS: added an entry for RSS Parser. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@13747 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
754b1fac44
commit
57a639494a
81 changed files with 11826 additions and 1691 deletions
71
lib/rss/xml.rb
Normal file
71
lib/rss/xml.rb
Normal file
|
@ -0,0 +1,71 @@
|
|||
require "rss/utils"
|
||||
|
||||
module RSS
|
||||
module XML
|
||||
class Element
|
||||
include Enumerable
|
||||
|
||||
attr_reader :name, :prefix, :uri, :attributes, :children
|
||||
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
|
||||
|
||||
def [](name)
|
||||
@attributes[name]
|
||||
end
|
||||
|
||||
def []=(name, value)
|
||||
@attributes[name] = value
|
||||
end
|
||||
|
||||
def <<(child)
|
||||
@children << child
|
||||
end
|
||||
|
||||
def each(&block)
|
||||
@children.each(&block)
|
||||
end
|
||||
|
||||
def ==(other)
|
||||
other.kind_of?(self.class) and
|
||||
@name == other.name and
|
||||
@uri == other.uri and
|
||||
@attributes == other.attributes and
|
||||
@children == other.children
|
||||
end
|
||||
|
||||
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
|
||||
|
||||
def full_name
|
||||
if @prefix
|
||||
"#{@prefix}:#{@name}"
|
||||
else
|
||||
@name
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue