summaryrefslogtreecommitdiff
path: root/lib/rss/syndication.rb
diff options
context:
space:
mode:
authorkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-06-19 16:12:45 +0000
committerkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-06-19 16:12:45 +0000
commitb60b8361fdf87961e0538522624d692b8e82cc4c (patch)
tree485e53f3169d084c1f54f9a704095a4952eb0542 /lib/rss/syndication.rb
parenteb41c8d2e33603bbc993ca0778421ea0f12e7fb4 (diff)
* lib/rss/rss.rb:
- cleanup validation mechanism. Now, #XXX_validation is needless. - changed internal variable name RSS::Element::MODEL to RSS::Element::MODELS. - RSS::Element.install_model requires uri. * lib/rss/0.9.rb: followed new validation API. * lib/rss/1.0.rb: ditto. * lib/rss/2.0.rb: ditto. * lib/rss/content.rb: ditto. * lib/rss/dublincore.rb: ditto. * lib/rss/image.rb: ditto. * lib/rss/syndication.rb: ditto. * lib/rss/taxonomy.rb: ditto. * lib/rss/trackback.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10334 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rss/syndication.rb')
-rw-r--r--lib/rss/syndication.rb29
1 files changed, 8 insertions, 21 deletions
diff --git a/lib/rss/syndication.rb b/lib/rss/syndication.rb
index fc93d03832..bb4a250a24 100644
--- a/lib/rss/syndication.rb
+++ b/lib/rss/syndication.rb
@@ -15,18 +15,21 @@ module RSS
def self.append_features(klass)
super
-
- klass.module_eval(<<-EOC, *get_file_and_line_from_caller(1))
+
+ klass.install_must_call_validator(SY_PREFIX, SY_URI)
+ klass.module_eval do
[
["updatePeriod"],
["updateFrequency", :positive_integer]
].each do |name, type|
- install_text_element("\#{SY_PREFIX}_\#{name}", type,
- "\#{SY_PREFIX}:\#{name}")
+ install_text_element("#{SY_PREFIX}_#{name}", type,
+ "#{SY_PREFIX}:#{name}")
+ install_model(name, SY_URI, "?")
end
%w(updateBase).each do |name|
- install_date_element("\#{SY_PREFIX}_\#{name}", 'w3cdtf', name)
+ install_date_element("#{SY_PREFIX}_#{name}", 'w3cdtf', name)
+ install_model(name, SY_URI, "?")
end
alias_method(:_sy_updatePeriod=, :sy_updatePeriod=)
@@ -35,22 +38,6 @@ module RSS
validate_sy_updatePeriod(new_value) if @do_validate
self._sy_updatePeriod = new_value
end
- EOC
- end
-
- def sy_validate(ignore_unknown_element, tags, uri)
- counter = {}
- ELEMENTS.each do |name|
- counter[name] = 0
- end
-
- tags.each do |tag|
- key = "#{SY_PREFIX}_#{tag}"
- if ignore_unknown_element and !counter.has_key?(key)
- raise UnknownTagError.new(tag, SY_URI)
- end
- counter[key] += 1
- raise TooMuchTagError.new(tag, tag_name) if counter[key] > 1
end
end