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