Title: [1034] trunk/image_voodoo:
Fix class #with_image to not check for extensions; make error/
exception API a little more sane
- Revision
- 1034
- Author
- nicksieger
- Date
- 2008-07-02 12:18:23 -0400 (Wed, 02 Jul 2008)
Log Message
Fix class #with_image to not check for extensions; make error/exception API a little more sane
Modified Paths
Diff
Modified: trunk/image_voodoo/lib/image_voodoo.rb (1033 => 1034)
--- trunk/image_voodoo/lib/image_voodoo.rb 2008-06-27 02:07:01 UTC (rev 1033)
+++ trunk/image_voodoo/lib/image_voodoo.rb 2008-07-02 16:18:23 UTC (rev 1034)
@@ -303,12 +303,10 @@
# A top-level image loader opens path and then yields/returns the image.
#
def self.with_image(file)
- readers = ImageIO.getImageReadersBySuffix(File.extname(file)[1..-1])
- raise TypeError, "unrecognized format for #{file}" unless readers.hasNext
- image = ImageVoodoo.new ImageIO.read(JFile.new(file))
- block_given? ? yield(image) : image
- rescue NativeException => ne
- nil
+ raise ArgumentError, "file does not exist" unless File.file?(file)
+ buffered_image = ImageIO.read(JFile.new(file))
+ image = ImageVoodoo.new(buffered_image) if buffered_image
+ image && block_given? ? yield(image) : image
end
#
Modified: trunk/image_voodoo/test/test_image_science.rb (1033 => 1034)
--- trunk/image_voodoo/test/test_image_science.rb 2008-06-27 02:07:01 UTC (rev 1033)
+++ trunk/image_voodoo/test/test_image_science.rb 2008-07-02 16:18:23 UTC (rev 1034)
@@ -33,7 +33,7 @@
end
def test_class_with_image_missing
- assert_raises TypeError do
+ assert_raises ArgumentError do
ImageScience.with_image @path + "nope" do |img|
flunk
end
@@ -41,7 +41,16 @@
end
def test_class_with_image_missing_with_img_extension
- assert_nil ImageScience.with_image("[EMAIL PROTECTED]") do |img|
+ assert_raises ArgumentError do
+ ImageScience.with_image("[EMAIL PROTECTED]") do |img|
+ flunk
+ end
+ end
+ end
+
+ def test_class_with_image_return_nil_on_bogus_image
+ File.open(@tmppath, "w") {|f| f << "bogus image file"}
+ assert_nil ImageScience.with_image(@tmppath) do |img|
flunk
end
end
_______________________________________________
Jruby-extras-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/jruby-extras-devel