API Docs for: 1.0 pre
Show:

Ember.DataAdapter Class

The DataAdapter helps a data persistence library interface with tools that debug Ember such as the Ember Extension for Chrome and Firefox.

This class will be extended by a persistence library which will override some of the methods with library-specific code.

The methods likely to be overridden are:

  • getFilters
  • detect
  • columnsForType
  • getRecords
  • getRecordColumnValues
  • getRecordKeywords
  • getRecordFilterValues
  • getRecordColor
  • observeRecord

The adapter will need to be registered in the application's container as dataAdapter:main

Example:

Application.initializer({
  name: "data-adapter",

  initialize: function(container, application) {
    application.register('data-adapter:main', DS.DataAdapter);
  }
});

Methods

_getObjectsOnNamespaces

() Array private

Loops over all namespaces and all objects attached to them

Returns:

Array:

Array of model type strings

columnsForType

(
  • type
)
Array private

Get the columns for a given model type.

Parameters:

  • type Class

    The model type

Returns:

Array:

An array of columns of the following format: name: {String} name of the column desc: {String} Humanized description (what would show in a table column name)

detect

(
  • klass
)
private

Detect whether a class is a model.

Test that against the model class of your persistence library

Parameters:

  • klass Class

    The class to test

Returns:

boolean Whether the class is a model class or not

getFilters

() Array public

Specifies how records can be filtered. Records returned will need to have a filterValues property with a key for every name in the returned array.

Returns:

Array:

List of objects defining filters. The object should have a name and desc property.

getModelTypes

() Array private

Fetches all models defined in the application.

Returns:

Array:

Array of model types

getRecordColor

(
  • record
)
String private

Each record can have a color that represents its state.

Parameters:

  • record Object

    The record instance

Returns:

String:

The record's color Possible options: black, red, blue, green

getRecordColumnValues

() Object private

Gets the values for each column.

Returns:

Object:

Keys should match column names defined by the model type.

getRecordFilterValues

(
  • record
)
Object private

Returns the values of filters defined by getFilters.

Parameters:

  • record Object

    The record instance

Returns:

Object:

The filter values

getRecordKeywords

() Array private

Returns keywords to match when searching records.

Returns:

Array:

Relevant keywords for search.

getRecords

() Array private

Fetches all loaded records for a given type.

Returns:

Array:

An array of records. This array will be observed for changes, so it should update when new records are added/removed.

observeModelType

(
  • type
  • typesUpdated
)
Function private

Adds observers to a model type class.

Parameters:

  • type Class

    The model type class

  • typesUpdated Function

    Called when a type is modified.

Returns:

Function:

The function to call to remove observers

observerRecord

(
  • record
  • recordUpdated
)
Function private

Observes all relevant properties and re-sends the wrapped record when a change occurs.

Parameters:

  • record Object

    The record instance

  • recordUpdated Function

    The callback to call when a record is updated.

Returns:

Function:

The function to call to remove all observers.

watchModelTypes

(
  • typesAdded
  • typesUpdated
)
Function public

Fetch the model types and observe them for changes.

Parameters:

  • typesAdded Function

    Callback to call to add types. Takes an array of objects containing wrapped types (returned from wrapModelType).

  • typesUpdated Function

    Callback to call when a type has changed. Takes an array of objects containing wrapped types.

Returns:

Function:

Method to call to remove all observers

watchRecords

(
  • recordsAdded
  • recordsUpdated
  • recordsRemoved
)
Function public

Fetch the records of a given type and observe them for changes.

Parameters:

  • recordsAdded Function

    Callback to call to add records. Takes an array of objects containing wrapped records. The object should have the following properties: columnValues: {Object} key and value of a table cell object: {Object} the actual record object

  • recordsUpdated Function

    Callback to call when a record has changed. Takes an array of objects containing wrapped records.

  • recordsRemoved Function

    Callback to call when a record has removed. Takes the following parameters: index: the array index where the records were removed count: the number of records removed

Returns:

Function:

Method to call to remove all observers

willDestroy

() private

Clear all observers before destruction

wrapModelType

(
  • type
  • Optional
)
Object private

Wraps a given model type and observes changes to it.

Parameters:

  • type Class

    A model class

  • Optional String

    name of the class

Returns:

Object:

contains the wrapped type and the function to remove observers Format: type: {Object} the wrapped type The wrapped type has the following format: name: {String} name of the type count: {Integer} number of records available columns: {Columns} array of columns to describe the record object: {Class} the actual Model type class release: {Function} The function to remove observers

wrapRecord

(
  • record
)
Object private

Wraps a record and observers changes to it.

Parameters:

  • record Object

    The record instance.

Returns:

Object:

The wrapped record. Format: columnValues: {Array} searchKeywords: {Array}

Properties

attributeLimit

Unknown private

Number of attributes to send as columns. (Enough to make the record identifiable).

Default: 3

container

Unknown

The container of the application being debugged. This property will be injected on creation.

Default: null

containerDebugAdapter

Unknown

The container-debug-adapter which is used to list all models.

Default: undefined

releaseMethods

Unknown private

Stores all methods that clear observers. These methods will be called on destruction.