A proc can be executed by being passed as a block to a yielding method, or by being called manually (as you mention).
a_proc = proc { puts "The proc" }
def i_am_yielding
yield
end
a_proc.call
# => "The proc"
i_am_yielding { puts "A block" }
# => "A block"
i_am_yielding(&a_proc)
# => "The proc"
Perhaps there are more ways, but I can't think of any. I am not sure what it means in your particular case, though. That proc is inside an array, which is added to another array (i presume), and not being referenced to at all anywhere else, so no procs will get called in that short snippet you paste here.