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)