15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/nandoc/support/orphanage.rb', line 15
def rescue_orphans
fail("must have site root to continue hacking") unless site_root
items = @items.map items.each do |item|
next unless is_orphan? item
id = item.identifier
parent_id = parent_identifier(id)
bare_root = identifier_bare_rootname_assert(id)
bare_parent = slash_strip_assert(parent_id)
new_id = nil
@renamer = nil
if @basenames.include?(bare_root)
@renamer = /\A\/#{Regexp.escape(bare_root)}\/(.+)\Z/
new_id = rename(id)
end
if (!new_id || bare_parent!=bare_root) && is_orphan?(item, new_id)
make_surrogate_parent parent_id
end
item.identifier = new_id if new_id
end
end
|