code: def format_operation(key, val, data_type)
        return val unless val.is_a?(Hash) && val["__op"].present?
        op = val["__op"]
        ivar = :"@#{key}"
        #handles delete case otherwise 'null' shows up in column
        if "Delete" == op
          val = nil
        elsif "Add" == op && data_type == :array
          val = (instance_variable_get(ivar) || []).to_a + (val["objects"] || [])
        elsif "Remove" == op && data_type == :array
          val = (instance_variable_get(ivar) || []).to_a - (val["objects"] || [])
        elsif "AddUnique" == op && data_type == :array
          objects = (val["objects"] || []).uniq
          original_items = (instance_variable_get(ivar) || []).to_a
          objects.reject! { |r| original_items.include?(r) }
          val = original_items + objects
        elsif "Increment" == op && data_type == :integer || data_type == :integer
          # for operations that increment by a certain amount, they come as a hash
          val = (instance_variable_get(ivar) || 0) + (val["amount"] || 0).to_i
        end
        val
      end
docs: Returns a formatted value based on the operation hash and data_type of the property.
   For some values in Parse, they are specified as operation hashes which could include
   Add, Remove, Delete, AddUnique and Increment.
   @param key [Symbol] the name of the property
   @param val [Hash] the Parse operation hash value.
   @param data_type [Symbol] The data type of the property.
   @return [Object]