lib/tiff.rb in exifr-1.0.1 vs lib/tiff.rb in exifr-1.0.2

- old
+ new

@@ -1,8 +1,9 @@ # Copyright (c) 2007, 2008, 2009, 2010 - R.W. van 't Veer require 'rational' +require 'enumerator' module EXIFR # = TIFF decoder # # == Date properties @@ -481,18 +482,22 @@ start = len > 4 ? @offset + 8 : (pos + 8) # UserComment first 8-bytes is char code @value = [pack[data[start..(start + len - 1)]]].flatten end when 5 # unsigned rational len, pack = count * 8, proc do |d| - d.unpack(data.long + '*').each_slice(2).map do |f| - rational(*f) + rationals = [] + d.unpack(data.long + '*').each_slice(2) do |f| + rationals << rational(*f) end + rationals end when 10 # signed rational len, pack = count * 8, proc do |d| - d.unpack(data.long + '*').map{|n| sign_long(n)}.each_slice(2).map do |f| - rational(*f) + rationals = [] + d.unpack(data.long + '*').map{|n| sign_long(n)}.each_slice(2) do |f| + rationals << rational(*f) end + rationals end end if len && pack && @type != 7 start = len > 4 ? @offset : (pos + 8)