mirror of
https://github.com/ruby/ruby.git
synced 2025-08-23 13:04:13 +02:00
* lib/rss.rb, lib/rss/, test/rss/:
- 0.1.9 -> 0.2.0. - supported Slash module. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
b528261ad8
commit
1b56bcce22
19 changed files with 296 additions and 18 deletions
49
lib/rss/slash.rb
Normal file
49
lib/rss/slash.rb
Normal file
|
@ -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
|
Loading…
Add table
Add a link
Reference in a new issue