diff options
| author | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-09-15 04:41:28 +0000 |
|---|---|---|
| committer | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-09-15 04:41:28 +0000 |
| commit | 50de0d6a1d308c0586bd67070703af41b33f80ac (patch) | |
| tree | a95638b481c27eedfb67197660b22667466d5831 /lib/rss/slash.rb | |
| parent | 9bc67b6314bb47bc55330d4d634013053147ea52 (diff) | |
| download | ruby-50de0d6a1d308c0586bd67070703af41b33f80ac.tar.gz ruby-50de0d6a1d308c0586bd67070703af41b33f80ac.tar.xz ruby-50de0d6a1d308c0586bd67070703af41b33f80ac.zip | |
* lib/rss.rb, lib/rss/, test/rss/:
- 0.1.9 -> 0.2.0.
- supported Slash module.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rss/slash.rb')
| -rw-r--r-- | lib/rss/slash.rb | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/lib/rss/slash.rb b/lib/rss/slash.rb new file mode 100644 index 000000000..f102413b4 --- /dev/null +++ b/lib/rss/slash.rb @@ -0,0 +1,49 @@ +require 'rss/1.0' + +module RSS + SLASH_PREFIX = 'slash' + SLASH_URI = "http://purl.org/rss/1.0/modules/slash/" + + RDF.install_ns(SLASH_PREFIX, SLASH_URI) + + module SlashModel + extend BaseModel + + ELEMENT_INFOS = \ + [ + ["section"], + ["department"], + ["comments", :positive_integer], + ["hit_parade", :csv_integer], + ] + + class << self + def append_features(klass) + super + + return if klass.instance_of?(Module) + klass.install_must_call_validator(SLASH_PREFIX, SLASH_URI) + ELEMENT_INFOS.each do |name, type, *additional_infos| + full_name = "#{SLASH_PREFIX}_#{name}" + klass.install_text_element(full_name, SLASH_URI, "?", + full_name, type, name) + end + + klass.module_eval do + alias_method(:slash_hit_parades, :slash_hit_parade) + undef_method(:slash_hit_parade) + alias_method(:slash_hit_parade, :slash_hit_parade_content) + end + end + end + end + + class RDF + class Item; include SlashModel; end + end + + SlashModel::ELEMENT_INFOS.each do |name, type| + accessor_base = "#{SLASH_PREFIX}_#{name}" + BaseListener.install_get_text_element(SLASH_URI, name, accessor_base) + end +end |
