Module: ZPNG::ReadableStruct::ClassMethods
- Defined in:
- lib/zpng/readable_struct.rb
Instance Method Summary collapse
-
#read(src, size = nil) ⇒ Object
src can be IO or String, or anything that responds to :read or :unpack.
Instance Method Details
#read(src, size = nil) ⇒ Object
src can be IO or String, or anything that responds to :read or :unpack
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/zpng/readable_struct.rb', line 28 def read src, size = nil size ||= const_get 'SIZE' data = if src.respond_to?(:read) src.read(size).to_s elsif src.respond_to?(:unpack) src else raise "[?] don't know how to read from #{src.inspect}" end if data.size < size $stderr.puts "[!] #{self.to_s} want #{size} bytes, got #{data.size}" end new(*data.unpack(const_get('FORMAT'))) end |