diff options
Diffstat (limited to 'lib/utils.coffee')
| -rw-r--r-- | lib/utils.coffee | 17 | 
1 files changed, 17 insertions, 0 deletions
| diff --git a/lib/utils.coffee b/lib/utils.coffee index 661f7e84..64c87842 100644 --- a/lib/utils.coffee +++ b/lib/utils.coffee @@ -152,6 +152,23 @@ Utils =    # locale-sensitive uppercase detection    hasUpperCase: (s) -> s.toLowerCase() != s +  # Give objects (including elements) distinct identities. +  getIdentity: do -> +    identities = [] + +    (obj) -> +      index = identities.indexOf obj +      if index < 0 +        index = identities.length +        identities.push obj +      "identity-" + index + +  # Return a copy of object, but with some of its properties omitted. +  copyObjectOmittingProperties: (obj, properties...) -> +    obj = extend {}, obj +    delete obj[property] for property in properties +    obj +  # This creates a new function out of an existing function, where the new function takes fewer arguments. This  # allows us to pass around functions instead of functions + a partial list of arguments.  Function::curry = -> | 
