Method: Megam::AssemblyCollection#insert

Defined in:
lib/megam/core/assembly_collection.rb

#insert(assemblys) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/megam/core/assembly_collection.rb', line 38

def insert(assemblys)
    is_megam_assemblys(assemblys)
    if @insert_after_idx
        # in the middle of executing a run, so any nodes inserted now should
        # be placed after the most recent addition done by the currently executing
        # node
        @assemblys.insert(@insert_after_idx + 1, assemblys)
        # update name -> location mappings and register new node
        @assemblys_by_name.each_key do |key|
            @assemblys_by_name[key] += 1 if @assemblys_by_name[key] > @insert_after_idx
        end
        @assemblys_by_name[assemblys.name] = @insert_after_idx + 1
        @insert_after_idx += 1
    else
        @assemblys << assemblys
        @assemblys_by_name[assemblys.name] = @assemblys.length - 1
    end
end