aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rss
diff options
context:
space:
mode:
authorkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-11-02 11:58:03 +0000
committerkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-11-02 11:58:03 +0000
commit79041dfc8d68fa9009aab2dea6bf8c0c95cba0fe (patch)
tree7b93ec75e73e26c517e7fcc0749e2d073019acf2 /lib/rss
parenta7f1c72e9067e347613a4219767f1ea7c0824dd1 (diff)
downloadruby-79041dfc8d68fa9009aab2dea6bf8c0c95cba0fe.tar.gz
* lib/rss/content.rb, lib/rss/content/, lib/rss/maker/content.rb,
test/rss/test_content.rb, test/rss/test_maker_content.rb, test/rss/rss-testcase.rb (RSS::TestCase): supported content:encoded with RSS 2.0. Suggested by Sam Lown. Thanks. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13805 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rss')
-rw-r--r--lib/rss/content.rb23
-rw-r--r--lib/rss/content/1.0.rb10
-rw-r--r--lib/rss/content/2.0.rb12
-rw-r--r--lib/rss/maker/content.rb1
-rw-r--r--lib/rss/rss.rb2
5 files changed, 32 insertions, 16 deletions
diff --git a/lib/rss/content.rb b/lib/rss/content.rb
index bb61d9ebc5..b12ee918aa 100644
--- a/lib/rss/content.rb
+++ b/lib/rss/content.rb
@@ -1,38 +1,31 @@
-require "rss/1.0"
+require "rss/rss"
module RSS
-
CONTENT_PREFIX = 'content'
CONTENT_URI = "http://purl.org/rss/1.0/modules/content/"
- RDF.install_ns(CONTENT_PREFIX, CONTENT_URI)
-
module ContentModel
-
extend BaseModel
- ELEMENTS = []
+ ELEMENTS = ["#{CONTENT_PREFIX}_encoded"]
def self.append_features(klass)
super
klass.install_must_call_validator(CONTENT_PREFIX, CONTENT_URI)
- %w(encoded).each do |name|
- klass.install_text_element(name, CONTENT_URI, "?",
- "#{CONTENT_PREFIX}_#{name}")
+ ELEMENTS.each do |full_name|
+ name = full_name[(CONTENT_PREFIX.size + 1)..-1]
+ klass.install_text_element(name, CONTENT_URI, "?", full_name)
end
end
end
- class RDF
- class Item; include ContentModel; end
- end
-
prefix_size = CONTENT_PREFIX.size + 1
- ContentModel::ELEMENTS.uniq!
ContentModel::ELEMENTS.each do |full_name|
name = full_name[prefix_size..-1]
BaseListener.install_get_text_element(CONTENT_URI, name, full_name)
end
-
end
+
+require 'rss/content/1.0'
+require 'rss/content/2.0'
diff --git a/lib/rss/content/1.0.rb b/lib/rss/content/1.0.rb
new file mode 100644
index 0000000000..e7c0c19685
--- /dev/null
+++ b/lib/rss/content/1.0.rb
@@ -0,0 +1,10 @@
+require 'rss/1.0'
+require 'rss/content'
+
+module RSS
+ RDF.install_ns(CONTENT_PREFIX, CONTENT_URI)
+
+ class RDF
+ class Item; include ContentModel; end
+ end
+end
diff --git a/lib/rss/content/2.0.rb b/lib/rss/content/2.0.rb
new file mode 100644
index 0000000000..8671b5b1a6
--- /dev/null
+++ b/lib/rss/content/2.0.rb
@@ -0,0 +1,12 @@
+require "rss/2.0"
+require "rss/content"
+
+module RSS
+ Rss.install_ns(CONTENT_PREFIX, CONTENT_URI)
+
+ class Rss
+ class Channel
+ class Item; include ContentModel; end
+ end
+ end
+end
diff --git a/lib/rss/maker/content.rb b/lib/rss/maker/content.rb
index a1fd283116..46c4911f73 100644
--- a/lib/rss/maker/content.rb
+++ b/lib/rss/maker/content.rb
@@ -1,5 +1,6 @@
require 'rss/content'
require 'rss/maker/1.0'
+require 'rss/maker/2.0'
module RSS
module Maker
diff --git a/lib/rss/rss.rb b/lib/rss/rss.rb
index 60fa77fe9a..93fe24d562 100644
--- a/lib/rss/rss.rb
+++ b/lib/rss/rss.rb
@@ -208,7 +208,7 @@ EOC
disp_name=nil)
name ||= tag_name
disp_name ||= name
- self::ELEMENTS << name
+ self::ELEMENTS << name unless self::ELEMENTS.include?(name)
add_need_initialize_variable(name)
install_model(tag_name, uri, occurs, name)