// ========================================================================== // Project: SproutCore Costello - Property Observing Library // Copyright: ©2006-2011 Strobe Inc. and contributors. // Portions ©2008-2011 Apple Inc. All rights reserved. // License: Licensed under MIT license (see license.js) // ==========================================================================

/**

@class

Implements some standard methods for comparing objects. Add this mixin to
any class you create that can compare its instances.

You should implement the compare() method.

@since SproutCore 1.0

*/ SC.Comparable = {

/**
  walk like a duck. Indicates that the object can be compared.

  @type Boolean
*/
isComparable: YES,

/**
  Override to return the result of the comparison of the two parameters. The
  compare method should return

  <pre>
    -1 if a < b
     0 if a == b
     1 if a > b
  </pre>

  Default implementation raises an exception.

  @param a {Object} the first object to compare
  @param b {Object} the second object to compare
  @returns {Integer} the result of the comparison
*/
compare: function(a, b) {
  throw new Error("%@.compare() is not implemented".fmt(this.toString()));
}

};