#--
-# $Id: eet.rb 37 2005-05-11 17:23:06Z tilman $
+# $Id: eet.rb 44 2005-05-25 19:51:25Z tilman $
#
# Copyright (c) 2005 Tilman Sauerbeck (tilman at code-monkey de)
#
props.each_pair do |tag, arg|
unless arg.is_a?(Array)
- raise(Eet::PropertyError, "hash value not an array")
+ raise(Eet::PropertyError, "hash value is not an array")
end
value, type = arg
class TrueClass # :nodoc:
def to_eet_chunks(tag, type = nil)
- [Eet::Chunk.new(tag, [1].pack("c"))]
+ [Eet::Chunk.new(tag, "\1")]
end
end
class FalseClass # :nodoc:
def to_eet_chunks(tag, type = nil)
- [Eet::Chunk.new(tag, [0].pack("c"))]
+ [Eet::Chunk.new(tag, "\0")]
end
end
def Stream.deserialize(data)
data = data.to_str.dup
s = Stream.new
+ offset = 0
- while data.length > 0
- s << Chunk.deserialize(data)
+ while offset < data.length
+ c, bytes = Chunk.deserialize(data[offset..-1])
+
+ s << c
+ offset += bytes
end
s
c = Chunk.new(*data[8, size].split("\0", 2))
- data.replace(data[8 + size..-1] || "")
-
- c
+ [c, 8 + size]
end
end
end