class Blender3d::StructureDefinition
Attributes
fields[R]
name[R]
size[R]
Public Class Methods
new(name, size, fields = [])
click to toggle source
# File lib/blender-3d/structure_definition.rb, line 5 def initialize(name, size, fields = []) name = name[0].upcase + name[1..-1] @name, @size, @fields = name, size, fields end
Public Instance Methods
read(reader)
click to toggle source
# File lib/blender-3d/structure_definition.rb, line 10 def read(reader) structure_class.new(reader) end
structure_class()
click to toggle source
# File lib/blender-3d/structure_definition.rb, line 14 def structure_class Blender3d.const_defined?(name, false) ? Blender3d.const_get(name, false) : define_structure_class end
Private Instance Methods
define_structure_class()
click to toggle source
# File lib/blender-3d/structure_definition.rb, line 20 def define_structure_class fields = self.fields struct_class = Class.new(Structure) { attr_accessor(*fields.map(&:name)) } struct_class.instance_variable_set :@definition, self Blender3d.const_set(name, struct_class) end