# File lib/ruote/part/block_participant.rb, line 79
    def consume (workitem)

      r = if @block.arity == 1

        @block.call(workitem)
      else

        @block.call(
          workitem, Ruote::Exp::FlowExpression.fetch(@context, workitem.h.fei))
      end

      if r != nil && r != workitem
        #workitem.result = r
        workitem.result = (Rufus::Json.dup(r) rescue nil)
      end

      reply_to_engine(workitem)
    end