diff options
author | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-06-19 16:12:45 +0000 |
---|---|---|
committer | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-06-19 16:12:45 +0000 |
commit | b60b8361fdf87961e0538522624d692b8e82cc4c (patch) | |
tree | 485e53f3169d084c1f54f9a704095a4952eb0542 /lib/rss/syndication.rb | |
parent | eb41c8d2e33603bbc993ca0778421ea0f12e7fb4 (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.rb | 29 |
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 |