mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/rss/{rss,parser,0.9,1.0,2.0}.rb: supported RSS 0.9x/2.0
validation and validation which disregard order of elements. * test/rss/test_parser.rb: added tests for RSS 0.9x/2.0 validation. * test/rss/{test_trackback,rss-testcase}.rb: fixed no good method name. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6590 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
9800838ff0
commit
e289fcf81a
9 changed files with 446 additions and 113 deletions
|
@ -35,6 +35,20 @@ class Time
|
|||
end
|
||||
end
|
||||
|
||||
module Enumerable
|
||||
unless instance_methods.include?("sort_by")
|
||||
def sort_by
|
||||
collect do |x|
|
||||
[yield(x), x]
|
||||
end.sort do |x, y|
|
||||
x[0] <=> y[0]
|
||||
end.collect! do |x|
|
||||
x[1]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
require "English"
|
||||
require "rss/utils"
|
||||
require "rss/converter"
|
||||
|
@ -42,7 +56,9 @@ require "rss/xml-stylesheet"
|
|||
|
||||
module RSS
|
||||
|
||||
VERSION = "0.0.8"
|
||||
VERSION = "0.0.9"
|
||||
|
||||
URI = "http://purl.org/rss/1.0/"
|
||||
|
||||
DEBUG = false
|
||||
|
||||
|
@ -298,8 +314,6 @@ EOC
|
|||
|
||||
end
|
||||
|
||||
URI = "http://purl.org/rss/1.0/"
|
||||
|
||||
class Element
|
||||
|
||||
extend BaseModel
|
||||
|
@ -314,7 +328,7 @@ EOC
|
|||
TAG_NAME = name.split('::').last.downcase
|
||||
|
||||
|
||||
@@must_call_validators = {::RSS::URI => ''}
|
||||
@@must_call_validators = {}
|
||||
|
||||
def self.must_call_validators
|
||||
@@must_call_validators
|
||||
|
@ -427,6 +441,7 @@ EOC
|
|||
end
|
||||
|
||||
def validate_for_stream(tags)
|
||||
validate_attribute
|
||||
__validate(tags, false)
|
||||
end
|
||||
|
||||
|
@ -504,6 +519,11 @@ EOC
|
|||
do_redo = false
|
||||
not_shift = false
|
||||
tag = nil
|
||||
element_names = model.collect {|elem| elem[0]}
|
||||
if tags
|
||||
tags_size = tags.size
|
||||
tags = tags.sort_by {|x| element_names.index(x) || tags_size}
|
||||
end
|
||||
|
||||
model.each_with_index do |elem, i|
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue