1.3.7◀Back | Minified | Changelog | Cautionlog
Analogous to Underscore's
Object.omit, Sugar now has
Object.reject. These methods do pretty much what you would expect from the names -- returning a new object that contains properties that match/do not match the keys passed -- but have some special hidden features. Multiple keys may be specified through enumerated arguments, or also by passing an array of keys. Additionally, regexes will match against the key. And finally, passing another object will result in a match if that object also has the given key. This in effect will produce something like an "intersect" operation in the case of
select, and a "subtract" operation in the case of
reject. Some examples:
As "hash" methods,
reject are most powerful when used in extended objects (Sugar's answer to hashes):
String#endsWith were modified to allow a second argument that is the position from which
startsWith or to which
endsWith the operation will be performed on. This is to bring in line these methods with those of the Harmony proposals of the same name. The "case sensitivity" flag that was previously the second argument is now the third, and as always Sugar will detect when/if to defer to the native method if available.
- Fix for Date.create not preserving the UTC flag when the source is also a date.
- Object.clone on arrays with the "deep" flag set to true should create a deep clone of the array.
- Array#min/max should throw an error when comparing to undefined.
- Fix for dates that fallback to native parsing when forcing UTC flag.
- Date#since/fromNow aliases will now count "past" integers instead of rounding.