summaryrefslogtreecommitdiff
path: root/lib/rss/rss.rb
diff options
context:
space:
mode:
authorkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-06-20 12:20:13 +0000
committerkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-06-20 12:20:13 +0000
commit7625cd5cfb3ea4609db79a1ee959f7186fa8b535 (patch)
tree143100697def896d9ea0e6aff3264c5adfb34b54 /lib/rss/rss.rb
parentdf1e494a136dc507b36e90edbaffdeb611ab8923 (diff)
* lib/rss/rss.rb: provided default RSS::Element#children.
* lib/rss/0.9.rb: used default RSS::Element#children. * lib/rss/1.0.rb: ditto. * lib/rss/2.0.rb: ditto. * lib/rss/taxonomy.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10343 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rss/rss.rb')
-rw-r--r--lib/rss/rss.rb15
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/rss/rss.rb b/lib/rss/rss.rb
index 2b7a3111fa..3a829d6488 100644
--- a/lib/rss/rss.rb
+++ b/lib/rss/rss.rb
@@ -769,13 +769,20 @@ EOC
__send__("#{prefix}#{tag_name}=", next_element)
end
end
-
- # not String class children.
+
def children
- []
+ rv = []
+ self.class.models.each do |name, uri, occurs, getter|
+ value = __send__(getter)
+ next if value.nil?
+ value = [value] unless value.is_a?(Array)
+ value.each do |v|
+ rv << v if v.is_a?(Element)
+ end
+ end
+ rv
end
- # default #validate() argument.
def _tags
rv = []
self.class.models.each do |name, uri, occurs, getter|