Module: RbStruct
- Defined in:
- lib/rbstruct/rbstruct.rb
Defined Under Namespace
Classes: StructBase
Constant Summary collapse
- TYPES =
{ :float => {:size => 4, :str => 'f'}, :int => {:size => 4, :str => 'i'}, :short => {:size => 2, :str => 's'}, :char => {:size => 1, :str => 'c'}, :unsigned_char => {:size => 1, :str => "C"}, :unsigned_short => {:size => 2, :str => "S"}, :unsigned_int => {:size => 4, :str => "I"}, :unsigned_long => {:size => 8, :str => "L_"} }
Class Method Summary collapse
Class Method Details
.read_struct(f, type, n = 1) ⇒ Object
144 145 146 147 148 149 150 151 |
# File 'lib/rbstruct/rbstruct.rb', line 144 def self.read_struct(f, type, n=1) format = type.format_string*n len = type.bsize*n array = f.read(len).unpack(format) return Array.new(n) { type.new(array.slice!(0, type.size)) } end |
.Struct(&block) ⇒ Object
132 133 134 135 136 |
# File 'lib/rbstruct/rbstruct.rb', line 132 def self.Struct(&block) c = Class.new(StructBase) c.class_eval &block return c end |
.write_struct(f, *structs) ⇒ Object
138 139 140 141 142 |
# File 'lib/rbstruct/rbstruct.rb', line 138 def self.write_struct(f, *structs) structs.each do |struct| f.write(struct.pack(struct.class.format_string)) end end |