Implement class instance variables

as they are just the type of the meta_class, that was relatively simple.
I feel this is what oo is meant to be, instance variables and methods for the objects, and since classes are objects, for them too.
Class variables seem like a design mistake, weird scoping rules and no data hiding (left as an exercise to the reader)
This commit is contained in:
2019-09-19 15:48:27 +03:00
parent b0d1948800
commit fd46826b9c
10 changed files with 46 additions and 43 deletions

View File

@ -3,8 +3,9 @@ module Boot
# a ruby object as a placeholder for the parfait Space during boot
class Space
attr_reader :classes
attr_reader :classes , :types
def initialize
@types = {}
@classes = {}
end
@ -13,6 +14,9 @@ module Boot
raise "No class for #{name}" unless cl
cl
end
def get_type_by_class_name(name)
@types[name]
end
end
# another ruby object to shadow the parfait, just during booting.
@ -82,6 +86,7 @@ module Parfait
types.each do |name , type|
clazz = Boot::Class.new(type)
boot_space.classes[name] = clazz
boot_space.types[name] = type
end
Parfait::Object.set_object_space( boot_space )
end