# File lib/ruote/exp/fe_restore.rb, line 62
    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 =
        has_attribute(*%w[ f fld field ].map { |k| "to_#{k}" }) ||
        has_attribute('to')

      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
        Ruote.set(h.applied_workitem['fields'], attribute(to), fields)
      else
        h.applied_workitem['fields'] = fields
      end

      # TODO : merge strategies

      reply_to_parent(h.applied_workitem)
    end