# File lib/ruote/exp/fe_restore.rb, line 57
    def apply

      from =
        has_attribute(*%w[ v var variable ].map { |k| "from_#{k}" }) ||
        has_attribute(*%w[ f fld field ].map { |k| "from_#{k}" }) ||
        has_attribute(*%w[ val value ])

      _, to_f = determine_tos
        # note : to_v is discarded (the underscore)

      from = 'from_var' if from == 'from_v'

      afrom = attribute(from)

      fields = if from.match(/var/)
        lookup_variable(afrom)
      elsif from.match(/f/)
        Ruote.lookup(h.applied_workitem['fields'], afrom)
      else # val
        afrom
      end

      if to_f
        Ruote.set(h.applied_workitem['fields'], to_f, fields)
      else
        h.applied_workitem['fields'] = fields
      end

      # TODO : merge strategies

      reply_to_parent(h.applied_workitem)
    end