Skip to content
This repository
Fetching contributors…

Cannot retrieve contributors at this time

file 121 lines (81 sloc) 6.401 kb

Changelog

0.11.0 - 7/3/12

  • Emit a "change" or "change:ATTRIBUTE_NAME" event when modifying attributes on an instance.
  • Remove jQuery dependency (REST persistence still requires jQuery).

0.10.1 - 7/4/11

  • Add a simple plugin interface. Call with MyModel.use(MyPlugin, "some", "args").
  • Switch to prototypal inheritance instead of copying functions into a new object.
  • Model.each(), .map() and .select() now behave more like their ECMA-262 equivalents except they return the class and call their iterators with the this value as the model by default.
  • Model.add() now only takes a single argument.

0.10.0 - 1/3/11

  • Add extend() and include() methods to add class and instance methods respectively.
  • New declaration syntax - pass a function giving you access to the newly created class instead of two separate objects.
  • A model with an id will be added to the collection when saved (like the docs said originally).
  • count() now follows suit with the rest of js-model and returns the number of models in all() allowing you to overwrite all() with your own custom implementation - or "Eggs Fish Ham" as he put it ;) [Mark Evans]

0.9.4 - 6/12/10

  • Add Model.map() method.
  • Protect the collection from accidental modification allowing you to safely remove() a model from within an each loop.
  • Added configurable Model.unique_key, exposed as instance.id() and used in finders. Defaults to 'id'. [Ismael Celis and Oliver Nightingale]
  • Protect an instance's initial attributes from accidental modification.

0.9.3 - 28/9/10

  • Add the ability to define a custom initialize() instance method that is called at the end of the initialization process. Thanks to Ismael Celis for the idea.

0.9.2 - 23/9/10

  • Ajax DELETE sends JSON body, including AjaxSetup data if available. [Ismael Celis]
  • Model.remove() should include removed instance in event data. [Ismael Celis]
  • Call the Model.load() callback with the scope of the class.

0.9.1 - 21/9/10

  • If defined, include jQuery.ajaxSetup data in REST parameters. [Ismael Celis]

0.9.0 - 16/9/10

  • Finder methods now return undefined for a missing model.
  • Remove #update method which you might guess acts like ActiveRecord's #update_attributes which is not the case - no calls are triggered on the persistence adapter.
  • Model.RestPersistence renamed to Model.REST - Model.RestPersistence can still be used but will be removed in version 1.0.
  • REST adapter now sends JSON instead of "application/x-www-form-urlencoded" (and so now requires the browser to be JSON-aware).
  • Add reverse class method.
  • Add Model.VERSION to allow inspection of js-model version.
  • Add Model.localStorage persistence adapter.
  • Stop jQuery's JSON parsing throwing an error when encountering Rails' none-empty " " JSON responses.
  • Remove Underscore dependency.
  • Model.remove method now takes a model instance rather than an id.
  • Rename sort to sortBy and add the ability to specify an attribute name as well as a custom function. Add sort method that acts on a collection just like Array#sort.
  • Add pluck method that takes an attribute name and returns an array of values.
  • Fix for callbacks being wrongly called on multiple instances - they were being stored on the prototype and thus being shared across instances. Thanks to Oliver Nightingale for identifying the bug and writing a test case.

0.8.4 - 2/7/10

  • Add named parameters to Model.RestPersistence so "/categories/:category_id/posts" will pick up the corresponding category_id attribute from your model and be converted to "/categories/2/posts". [Russell Jones]

0.8.3 - 15/4/10

  • Fix that find, first, last and detect return null when nothing is found.
  • Add unbind method to unbind all callbacks for a particular event or a specific callback by passing a reference to the original function.
  • Move callback functionality into a separate module and mix-in to class and instance.

0.8.2 - 7/4/10

  • Don't log an error when Rails returns a response of " " for a head :ok response.
  • jQuery.ajax should use dataType "json" removing the need to set a global beforeSend. [Jason Lee]

0.8.1 - 29/3/10

  • Fix that custom class methods should be available after chaining.

0.8.0 - 21/3/10

  • Move model collection methods into a separate object allowing you to customise the defaults in a single place.
  • Move model instance methods into a separate object. This allows you to redefine the defaults once rather than having to pass the same custom method to multiple models at declaration time.
  • Defining a model now takes three arguments: name, class methods, instance methods.

0.7.3 - 10/3/10

  • Fix callbacks in IE.
  • Fix broken Ajax tests in IE6 and IE7.

0.7.1 - 5/3/10

  • Model.RestPersistence now recognises a 422 response as validation failure and populates the model's errors object with the response data.
  • Model.errors is now an object and has a similar interface to ActiveModel.
  • Fix that changes should only be merged after a successful save (create/update).
  • Calling Model#attr() with no arguments returns a combined object of attributes/changes.
  • Fix that Model.RestPersistence Ajax failures should correctly run the supplied callback.
  • Add count method to Model.Collection.
  • Collection methods now access the collection through the all method so that select, each, etc work as expected if it's overwritten.

0.7.0 - 18/2/10

  • Events are now bound directly to a model rather than using jQuery bind. Collections also now have the concept of events with "add" and "remove" built-in.

0.6.1 - 12/2/10

  • update should trigger "update" event, add separate merge method.
  • Fix that persistence failure should not trigger corresponding event.

0.6.0 - 11/2/10

  • Pass only a single callback to save/destroy which is called with a boolean to indicate success/failure.
  • Bundle release into a single, versioned Javascript file plus minified version.
  • Change behaviour of Model.Collection and don't let duplicates (scoped by id) of the same model to be stored. [Laurie Young]

0.5.1 - 3/2/10

  • Fix that setting a null value with attr should be read back correctly from changes.
  • errors array shouldn't have to be manually reset when implementing validate.

0.5.0 - 3/2/10

  • First tagged release.
Something went wrong with that request. Please try again.