ruby-changes:3260
From: ko1@a...
Date: 28 Dec 2007 13:23:23 +0900
Subject: [ruby-changes:3260] kou - Ruby:r14753 (ruby_1_8): * lib/rss/rss.rb, test/rss/test_version.rb, NEWS: 0.2.2 -> 0.2.3.
kou 2007-12-28 13:23:09 +0900 (Fri, 28 Dec 2007)
New Revision: 14753
Modified files:
branches/ruby_1_8/ChangeLog
branches/ruby_1_8/NEWS
branches/ruby_1_8/lib/rss/parser.rb
branches/ruby_1_8/lib/rss/rss.rb
branches/ruby_1_8/test/rss/test_parser.rb
branches/ruby_1_8/test/rss/test_version.rb
Log:
* lib/rss/rss.rb, test/rss/test_version.rb, NEWS: 0.2.2 -> 0.2.3.
* lib/rss/parser.rb, test/rss/test_parser.rb: supported "-" in tag name.
Reported by Ray Chen. Thanks.
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/lib/rss/parser.rb?r1=14753&r2=14752
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ChangeLog?r1=14753&r2=14752
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/test/rss/test_version.rb?r1=14753&r2=14752
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/test/rss/test_parser.rb?r1=14753&r2=14752
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/lib/rss/rss.rb?r1=14753&r2=14752
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/NEWS?r1=14753&r2=14752
Index: ruby_1_8/NEWS
===================================================================
--- ruby_1_8/NEWS (revision 14752)
+++ ruby_1_8/NEWS (revision 14753)
@@ -85,7 +85,7 @@
* rss
- * 0.1.6 -> 0.2.2
+ * 0.1.6 -> 0.2.3
* Fix image module URI
Index: ruby_1_8/ChangeLog
===================================================================
--- ruby_1_8/ChangeLog (revision 14752)
+++ ruby_1_8/ChangeLog (revision 14753)
@@ -1,3 +1,10 @@
+Fri Dec 28 13:21:32 2007 Kouhei Sutou <kou@c...>
+
+ * lib/rss/rss.rb, test/rss/test_version.rb, NEWS: 0.2.2 -> 0.2.3.
+
+ * lib/rss/parser.rb, test/rss/test_parser.rb: supported "-" in tag name.
+ Reported by Ray Chen. Thanks.
+
Thu Dec 27 23:56:01 2007 Nobuyoshi Nakada <nobu@r...>
* mkconfig.rb: should not use the libraries under the source directory
Index: ruby_1_8/lib/rss/parser.rb
===================================================================
--- ruby_1_8/lib/rss/parser.rb (revision 14752)
+++ ruby_1_8/lib/rss/parser.rb (revision 14753)
@@ -194,11 +194,7 @@
# return the tag_names for setters associated with uri
def available_tags(uri)
- begin
- @@accessor_bases[uri].keys
- rescue NameError
- []
- end
+ (@@accessor_bases[uri] || {}).keys
end
# register uri against this name.
@@ -221,11 +217,13 @@
# retrieve class_name for the supplied uri and tag_name
# If it doesn't exist, capitalize the tag_name
def class_name(uri, tag_name)
- begin
- @@class_names[uri][tag_name]
- rescue NameError
- tag_name[0,1].upcase + tag_name[1..-1]
+ name = (@@class_names[uri] || {})[tag_name]
+ return name if name
+
+ tag_name = tag_name.gsub(/[_\-]([a-z]?)/) do
+ $1.upcase
end
+ tag_name[0, 1].upcase + tag_name[1..-1]
end
def install_get_text_element(uri, name, accessor_base)
@@ -448,12 +446,14 @@
end
def start_have_something_element(tag_name, prefix, attrs, ns, klass)
-
check_ns(tag_name, prefix, ns, klass.required_uri)
+ attributes = collect_attributes(tag_name, prefix, attrs, ns, klass)
+ @proc_stack.push(setup_next_element(tag_name, klass, attributes))
+ end
+ def collect_attributes(tag_name, prefix, attrs, ns, klass)
attributes = {}
klass.get_attributes.each do |a_name, a_uri, required, element_name|
-
if a_uri.is_a?(String) or !a_uri.respond_to?(:include?)
a_uri = [a_uri]
end
@@ -482,14 +482,18 @@
attributes[a_name] = val
end
+ attributes
+ end
+ def setup_next_element(tag_name, klass, attributes)
previous = @last_element
next_element = klass.new(@do_validate, attributes)
previous.set_next_element(tag_name, next_element)
@last_element = next_element
@last_element.parent = previous if klass.need_parent?
@xml_child_mode = @last_element.have_xml_content?
- pr = Proc.new do |text, tags|
+
+ Proc.new do |text, tags|
p(@last_element.class) if DEBUG
if @xml_child_mode
@last_element.content = @xml_element.to_s
@@ -510,9 +514,7 @@
end
@last_element = previous
end
- @proc_stack.push(pr)
end
-
end
unless const_defined? :AVAILABLE_PARSER_LIBRARIES
Index: ruby_1_8/lib/rss/rss.rb
===================================================================
--- ruby_1_8/lib/rss/rss.rb (revision 14752)
+++ ruby_1_8/lib/rss/rss.rb (revision 14753)
@@ -52,7 +52,7 @@
module RSS
- VERSION = "0.2.2"
+ VERSION = "0.2.3"
URI = "http://purl.org/rss/1.0/"
Index: ruby_1_8/test/rss/test_version.rb
===================================================================
--- ruby_1_8/test/rss/test_version.rb (revision 14752)
+++ ruby_1_8/test/rss/test_version.rb (revision 14753)
@@ -3,7 +3,7 @@
module RSS
class TestVersion < TestCase
def test_version
- assert_equal("0.2.2", ::RSS::VERSION)
+ assert_equal("0.2.3", ::RSS::VERSION)
end
end
end
Index: ruby_1_8/test/rss/test_parser.rb
===================================================================
--- ruby_1_8/test/rss/test_parser.rb (revision 14752)
+++ ruby_1_8/test/rss/test_parser.rb (revision 14753)
@@ -46,5 +46,17 @@
assert_nil(RSS::Parser.parse(garbage_rss_file))
end
end
+
+ def test_parse_tag_includes_hyphen
+ assert_nothing_raised do
+ RSS::Parser.parse(make_RDF(<<-EOR))
+<xCal:x-calconnect-venue xmlns:xCal="urn:ietf:params:xml:ns:xcal" />
+#{make_channel}
+#{make_item}
+#{make_textinput}
+#{make_image}
+EOR
+ end
+ end
end
end
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml