6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/mdbe/database_views/class.rb', line 6
def to_database_view(depth, ranges = {}, params = {})
obj = super
if depth > 0 and not params[:noBehavior]
obj[:superclassObject] = self.superclass.to_database_view(depth - 1, {}, params)
end
if params[:subclasses] && depth > 1 obj[:subclasses] = __subclasses.to_a.sort_by {|c| c.to_s}.reverse.to_database_view(2, {}, {:allElements => true, :noBehavior => true})
end
if params[:instances] && depth > 1 range_from = ranges[:instances] ? Integer(ranges[:instances][0]) : 1
range_to = ranges[:instances] ? Integer(ranges[:instances][1]) : 10
instances = ObjectSpace::SystemRepository.__list_instances([self], 0, nil, 2, 95, true)[1]
params_instances = {:noBehavior => true}
obj[:instancesSize] = instances.size
obj[:instances] = {}
((range_from - 1)..[range_to - 1, instances.size - 1].min).each do |index|
obj[:instances][index + 1] = instances[index].to_database_view(depth - 1, {}, params_instances)
end
end
return obj
end
|