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/taxonomy.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/taxonomy.rb')
-rw-r--r-- | lib/rss/taxonomy.rb | 53 |
1 files changed, 7 insertions, 46 deletions
diff --git a/lib/rss/taxonomy.rb b/lib/rss/taxonomy.rb index d788976d92..e9bd38742d 100644 --- a/lib/rss/taxonomy.rb +++ b/lib/rss/taxonomy.rb @@ -28,22 +28,10 @@ module RSS def self.append_features(klass) super - var_name = "#{TAXO_PREFIX}_topics" - klass.install_have_child_element(var_name) - end - - def taxo_validate(ignore_unknown_element, tags, uri) - found_topics = false - tags.each do |tag| - if tag == "topics" - if found_topics - raise TooMuchTagError.new(tag, tag_name) - else - found_topics = true - end - elsif !ignore_unknown_element - raise UnknownTagError.new(tag, TAXO_URI) - end + klass.install_must_call_validator(TAXO_PREFIX, TAXO_URI) + %w(topics).each do |name| + klass.install_have_child_element("#{TAXO_PREFIX}_#{name}") + klass.install_model(name, TAXO_URI, "?") end end @@ -65,8 +53,8 @@ module RSS @tag_name = "topics" install_have_child_element("Bag") - - install_must_call_validator('rdf', ::RSS::RDF::URI) + install_model("Bag", RDF::URI, nil) + install_must_call_validator('rdf', RDF::URI) def initialize(*args) if Utils.element_initialize_arguments?(args) @@ -103,13 +91,9 @@ module RSS def _tags rv = [] - rv << [::RSS::RDF::URI, 'Bag'] unless @Bag.nil? + rv << [RDF::URI, 'Bag'] unless @Bag.nil? rv end - - def rdf_validate(ignore_unknown_element, tags, uri) - _validate(ignore_unknown_element, tags, uri, [["Bag", nil]]) - end end end @@ -122,14 +106,6 @@ module RSS klass.install_have_children_element(var_name) end - def taxo_validate(ignore_unknown_element, tags, uri) - tags.each do |tag| - if !ignore_unknown_element and tag != "topic" - raise UnknownTagError.new(tag, TAXO_URI) - end - end - end - class TaxonomyTopic < Element include RSS10 @@ -165,21 +141,6 @@ module RSS tag_name_with_prefix(TAXO_PREFIX) end - def taxo_validate(ignore_unknown_element, tags, uri) - elements = %w(link topics) - counter = {} - - tags.each do |tag| - if elements.include?(tag) - counter[tag] ||= 0 - counter[tag] += 1 - raise TooMuchTagError.new(tag, tag_name) if counter[tag] > 1 - elsif !ignore_unknown_element - raise UnknownTagError.new(tag, TAXO_URI) - end - end - end - def maker_target(target) target.new_taxo_topic end |