def reject!
      if block_given?
        return_nil = true
        @data.each do |k, v|
          if yield(k, v)
            @data.delete(k)
            return_nil = false
          end
        end
        return return_nil ? nil : self
      else
        return self.data.reject!
      end
    end
def reject!
      if block_given?
        return_nil = true
        @data.each do |k, v|
          if yield(k, v)
            @data.delete(k)
            return_nil = false
          end
        end
        return return_nil ? nil : self
      else
        return self.data.reject!
      end
    end
Deletes entries for which the supplied block evaluates to true.
 Equivalent to #delete_if, but returns nil if there were no changes