def delete_entry(requested_type, requested_key, default, delete_all = false)
      pred = proc do |type, (key, _value)|
        requested_key == key && requested_type == type
      end
      entry = entries.reverse_each.find(&pred)
      delete_all ? entries.delete_if(&pred) : entries.delete(entry)

      entry.nil? ? default : entry.last.last
    end
def delete_entry(requested_type, requested_key, default, delete_all = false)
      pred = proc do |type, (key, _value)|
        requested_key == key && requested_type == type
      end
      entry = entries.reverse_each.find(&pred)
      delete_all ? entries.delete_if(&pred) : entries.delete(entry)

      entry.nil? ? default : entry.last.last
    end
@return [Bool, String, Nil] Removes an entry from the entries list and
         returns its value or the default value if the entry was not
         present.

 @param  [Symbol] requested_type
         The type of the entry.

 @param  [String] requested_key
         The key of the entry.

 @param  [Bool, String, Nil] default
         The value which should be returned if the entry is not present.

 @param  [Bool] delete_all
         Whether all values matching `requested_type` and `requested_key`
         should be deleted.