def start(key=nil, object=nil)
return if key && !object.send("_one_time_conditions_valid_#{@callback_id}?")
if @kind == :before || @kind == :around
if @kind == :before
filter = "unless halted\nresult = \#{@filter}\nhalted = (\#{chain.config[:terminator]})\nend\n"
[@compiled_options[0], filter, @compiled_options[1]].compact.join("\n")
else
name = "_conditional_callback_#{@kind}_#{next_id}"
@klass.class_eval "def \#{name}(halted)\n\#{@compiled_options[0] || \"if true\"} && !halted\n\#{@filter} do\nyield self\nend\nelse\nyield self\nend\nend\n", __FILE__, __LINE__ + 1
"#{name}(halted) do"
end
end
end