def reply(workitem)

      if workitem['fei'] == h.fei # apply --> reply

        h.test = attribute(:test)
        h.test = attribute(:t) if h.test.nil?
        h.test = attribute_text if h.test.nil?
        h.test = nil if h.test == ''

        offset = (h.test.nil? || Condition.true?(h.test)) ? 0 : 1

        apply_child(offset, workitem)

      else # reply from a child

        if h.test != nil || Ruote::FlowExpressionId.child_id(workitem['fei']) != 0

          reply_to_parent(workitem)

        else

          apply_child(workitem['fields']['__result__'] == true ? 1 : 2, workitem)
        end
      end
    end
def reply(workitem)

      if workitem['fei'] == h.fei # apply --> reply

        h.test = attribute(:test)
        h.test = attribute(:t) if h.test.nil?
        h.test = attribute_text if h.test.nil?
        h.test = nil if h.test == ''

        offset = (h.test.nil? || Condition.true?(h.test)) ? 0 : 1

        apply_child(offset, workitem)

      else # reply from a child

        if h.test != nil || Ruote::FlowExpressionId.child_id(workitem['fei']) != 0

          reply_to_parent(workitem)

        else

          apply_child(workitem['fields']['__result__'] == true ? 1 : 2, workitem)
        end
      end
    end
called by 'else', 'then' or perhaps 'equals'