Module: IOStruct::ClassMethods
- Defined in:
- lib/iostruct.rb
Overview
self.new
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
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/iostruct.rb', line 57 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 |