/*
* Checks if the current Hash is a complete subset of the given Hash.
* It is a subset IFF every key of the current hash is in the given hash and
* every value of that key equals the value of the same key in the other hash.
*/
Hash.prototype.subset = function(h2)
{
return this.all(function(entry) {
var myval = entry[1];
var theirval = h2[entry[0]];
if (theirval && (myval instanceof Array) || (myval instanceof Hash))
return myval.subset(theirval);
else
return myval == theirval;
});
}
/* Subset for Enumerable */
Object.extend(Enumerable, {subset : function(a2)
{
return this.all(function(x) { return a2.include(x); });
}});
Array.prototype.subset = Enumerable.subset;