diff --git a/MIT-LICENSE b/MIT-LICENSE index 3e479cc..24a670f 100644 --- a/MIT-LICENSE +++ b/MIT-LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2008-2011 Stephen Sykes +Copyright (c) 2008-2013 Stephen Sykes Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff --git a/lib/fastimage.rb b/lib/fastimage.rb index 379f15f..2c0838c 100644 --- a/lib/fastimage.rb +++ b/lib/fastimage.rb @@ -173,6 +173,8 @@ class FastImage end end + uri.rewind if uri.respond_to?(:rewind) + raise SizeNotFound if options[:raise_on_failure] && @property == :size && !@size rescue Timeout::Error, SocketError, Errno::ECONNREFUSED, Errno::EHOSTUNREACH, Errno::ECONNRESET, diff --git a/test/test.rb b/test/test.rb index a4e7a79..fa9e53b 100644 --- a/test/test.rb +++ b/test/test.rb @@ -124,6 +124,15 @@ class FastImageTest < Test::Unit::TestCase end end end + + def test_should_report_size_correctly_on_io_object_twice + GoodFixtures.each do |fn, info| + File.open(File.join(FixturePath, fn), "r") do |io| + assert_equal info[1], FastImage.size(io) + assert_equal info[1], FastImage.size(io) + end + end + end def test_should_report_size_correctly_for_local_files_with_path_that_has_spaces Dir.chdir(PathHere) do