5
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
# File 'lib/pdoc/treemaker.rb', line 5
def initialize(doc_fragments = [])
methodized = []
doc_fragments.each do |attributes|
if attributes['methodized']
dups = attributes.dup
dups['id'] = methodize_id(dups['id'])
dups['type'] = 'instance method'
if dups['signatures']
dups['signatures'] = dups['signatures'].map do |s|
{
'signature' => methodize_signature(s['signature']),
'return_value' => s['return_value']
}
end
end
if dups['alias_of']
dups['alias_of'] = methodize_id(dups['alias_of'])
end
methodized << dups
i = instantiate_from(dups)
c = instantiate_from(attributes)
i.functionalized_self = c
c.methodized_self = i
else
instantiate_from(attributes)
end
end
doc_fragments.concat(methodized).each do |attributes|
if parent_id = attributes['parent_id']
parent = root.find(parent_id)
raise "Undocumented object: #{parent_id}." unless parent
else
parent = root
end
object = root.find(attributes['id'])
object.parent = parent
object.attach_to_parent(parent)
if superclass_id = attributes['superclass_id']
superclass = root.find(superclass_id)
raise "Undocumented object: #{superclass_id}." unless superclass
object.superclass = superclass
superclass.subclasses << object
end
if included = attributes['included']
included.each do |id|
mixin = root.find(id)
raise "Undocumented object: #{id}." unless mixin
object.included_mixins << mixin
end
end
if alias_of_id = attributes['alias_of']
alias_of = root.find(alias_of_id)
raise "Undocumented object: #{alias_of_id}." unless alias_of
object.alias = alias_of
alias_of.aliases << object
end
end
end
|