Line | |
---|
1 | require "rss/1.0"
|
---|
2 |
|
---|
3 | module RSS
|
---|
4 |
|
---|
5 | CONTENT_PREFIX = 'content'
|
---|
6 | CONTENT_URI = "http://purl.org/rss/1.0/modules/content/"
|
---|
7 |
|
---|
8 | RDF.install_ns(CONTENT_PREFIX, CONTENT_URI)
|
---|
9 |
|
---|
10 | module ContentModel
|
---|
11 |
|
---|
12 | extend BaseModel
|
---|
13 |
|
---|
14 | ELEMENTS = []
|
---|
15 |
|
---|
16 | def self.append_features(klass)
|
---|
17 | super
|
---|
18 |
|
---|
19 | klass.install_must_call_validator(CONTENT_PREFIX, CONTENT_URI)
|
---|
20 | %w(encoded).each do |name|
|
---|
21 | klass.install_text_element(name, CONTENT_URI, "?",
|
---|
22 | "#{CONTENT_PREFIX}_#{name}")
|
---|
23 | end
|
---|
24 | end
|
---|
25 | end
|
---|
26 |
|
---|
27 | class RDF
|
---|
28 | class Item; include ContentModel; end
|
---|
29 | end
|
---|
30 |
|
---|
31 | prefix_size = CONTENT_PREFIX.size + 1
|
---|
32 | ContentModel::ELEMENTS.uniq!
|
---|
33 | ContentModel::ELEMENTS.each do |full_name|
|
---|
34 | name = full_name[prefix_size..-1]
|
---|
35 | BaseListener.install_get_text_element(CONTENT_URI, name, "#{full_name}=")
|
---|
36 | end
|
---|
37 |
|
---|
38 | end
|
---|
Note:
See
TracBrowser
for help on using the repository browser.