summaryrefslogtreecommitdiff
path: root/lib/rss/syndication.rb
diff options
context:
space:
mode:
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