Module: IOStruct::ClassMethods
- Defined in:
- lib/iostruct.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
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/iostruct.rb', line 88 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 |