From 02569404e41a4633aacfaed4d3a5369c8bae9c1b Mon Sep 17 00:00:00 2001 From: kou Date: Fri, 25 Nov 2005 03:43:48 +0000 Subject: * lib/rss/rss.rb: improved type conversion. * lib/rss/1.0.rb: ditto. * lib/rss/0.9.rb: ditto. * lib/rss/2.0.rb: ditto. * lib/rss/image.rb: ditto. * lib/rss/syndication.rb: ditto. * test/rss/test_2.0.rb: added type conversion tests. * test/rss/test_accessor.rb: ditto. * test/rss/test_to_s.rb: ditto. * test/rss/test_syndication.rb: ditto. * test/rss/test_setup_maker_2.0.rb: ditto. * test/rss/test_setup_maker_1.0.rb: ditto. * test/rss/test_setup_maker_0.9.rb: ditto. * test/rss/test_maker_sy.rb: ditto. * test/rss/test_maker_image.rb: ditto. * test/rss/test_maker_2.0.rb: ditto. * test/rss/test_maker_0.9.rb: ditto. * test/rss/test_image.rb: ditto. * test/rss/test_maker_1.0.rb: use assert instead of assert_equal. * test/rss/rss-assertions.rb: improved type conversion assertions. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@9610 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/rss/image.rb | 53 +++++++++++++++++++++++++---------------------------- 1 file changed, 25 insertions(+), 28 deletions(-) (limited to 'lib/rss/image.rb') diff --git a/lib/rss/image.rb b/lib/rss/image.rb index 818edd4f2..9d3326efc 100644 --- a/lib/rss/image.rb +++ b/lib/rss/image.rb @@ -63,14 +63,20 @@ module RSS %w(width height).each do |tag| full_name = "#{IMAGE_PREFIX}_#{tag}" - install_text_element(full_name) + disp_name = "#{IMAGE_PREFIX}:#{tag}" + install_text_element(full_name, :integer, disp_name) BaseListener.install_get_text_element(IMAGE_URI, tag, "#{full_name}=") end + alias width= image_width= + alias width image_width + alias height= image_height= + alias height image_height + def initialize(about=nil, resource=nil) super() - @about = about - @resource = resource + self.about = about + self.resource = resource end def full_name @@ -87,29 +93,6 @@ module RSS rv end - alias _image_width= image_width= - def image_width=(new_value) - if @do_validate - self._image_width = Integer(new_value) - else - self._image_width = new_value.to_i - end - end - - alias _image_height= image_height= - def image_height=(new_value) - if @do_validate - self._image_height = Integer(new_value) - else - self._image_height = new_value.to_i - end - end - - alias width= image_width= - alias width image_width - alias height= image_height= - alias height image_height - private def _tags [ @@ -177,13 +160,27 @@ module RSS install_get_attribute(name, uri, required) end + AVAILABLE_SIZES = %w(small medium large) + alias_method :_size=, :size= + private :_size= + def size=(new_value) + if @do_validate and !new_value.nil? + new_value = new_value.strip + unless AVAILABLE_SIZES.include?(new_value) + attr_name = "#{IMAGE_PREFIX}:size" + raise NotAvailableValueError.new(full_name, new_value, attr_name) + end + end + funcall(:_size=, new_value) + end + alias image_size= size= alias image_size size def initialize(about=nil, size=nil) super() - @about = about - @size = size + self.about = about + self.size = size end def full_name -- cgit