lib/database_utils.rb in active-orient-0.5 vs lib/database_utils.rb in active-orient-0.6

- old
+ new

@@ -25,13 +25,13 @@ To retrieve the class hierarchy from Objects avoid calling classname, because it depends on class_hierarchy. =end def class_hierarchy base_class: '', system_classes: nil - @all_classes = get_classes('name', 'superClass') #if requery || @all_classes.blank? + @actual_class_hash = get_classes('name', 'superClass') #if requery || @all_classes.blank? def fv s # :nodoc: - @all_classes.find_all{|x| x['superClass']== s}.map{|v| v['name']} + @actual_class_hash.find_all{|x| x['superClass']== s}.map{|v| v['name']} end def fx v # :nodoc: fv(v.strip).map{|x| ar = fx(x); ar.empty? ? x : [x, ar]} end @@ -76,22 +76,31 @@ =end def get_db_superclass name @actual_class_hash = get_classes( 'name', 'superClass') if @actual_class_hash.nil? z= @actual_class_hash.find{|x,y| x['name'] == name.to_s } - z['superclass'] unless z.nil? + z['superClass'] unless z.nil? end =begin preallocate classes reads any class from the @classes-Array and allocates adequat Ruby-Objects =end - def preallocate_classes + def preallocate_classes from_model_dir= nil # first fetch all non-system-classes # io = class_hierarchy # allocate them and call require_model_file on each model # if something goes wrong, allocate_classes_in_ruby returns nil, thus compact prevents # from calling NilClass.require_model_file - allocate_classes_in_ruby(class_hierarchy).flatten.compact.each &:require_model_file + all_classes = allocate_classes_in_ruby(class_hierarchy).flatten.compact + classes_with_model_files = all_classes.map do |x| + success = x.require_model_file(from_model_dir) + if ActiveOrient::Model.keep_models_without_file.nil? && success.nil? && ![E,V].include?(x) + logger.info{ "Database-Class #{x.name} is not asseccible, model file is missing "} + x.delete_class :only_ruby_space + end + success # return_value + end + end end # module