A Record is a declarative wrapper around Struct.
require 'bindata' class SomeDataType < BinData::Record hide :a int32le :a int16le :b struct :s do int8 :x int8 :y int8 :z end end obj = SomeDataType.new obj.field_names =># [:b, :s] obj.s.field_names =># [:x, :y, :z]
# File lib/bindata/record.rb, line 34 def arg_extractor MultiFieldArgExtractor end
# File lib/bindata/record.rb, line 62 def define_field_accessors_for(name, index) define_method(name) do instantiate_obj_at(index) unless @field_objs[index] @field_objs[index] end define_method(name.to_s + "=") do |*vals| instantiate_obj_at(index) unless @field_objs[index] @field_objs[index].assign(*vals) end end
Generated with the Darkfish Rdoc Generator 2.