def delete!(to_delete)
      need_to_undef = parent && parent.respond_to?(to_delete) && parent.send(to_delete).eql?(@_componentable_container[to_delete])

      obj = @_componentable_container.delete(to_delete)

      if need_to_undef
        parent.instance_eval "undef #{to_delete}"
      end

      obj
    end
def delete!(to_delete)
      need_to_undef = parent && parent.respond_to?(to_delete) && parent.send(to_delete).eql?(@_componentable_container[to_delete])

      obj = @_componentable_container.delete(to_delete)

      if need_to_undef
        parent.instance_eval "undef #{to_delete}"
      end

      obj
    end
Same as the :delete method but raises an error if :name doesn't exists.
 @param name [Symbol] Name oof the component to delete.
 @return [Hash(Symbol, <ComponentableItem>), nil] Hash containing the name of the component deleted and its component. Nil if the name doesn't exist.