Skip to content

Commit

Permalink
use Ember.get to access store, in order to accomodate some new use cases
Browse files Browse the repository at this point in the history
  • Loading branch information
mike-north authored and Mike North committed Jul 31, 2015
1 parent e63f059 commit ffedfff
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 12 deletions.
10 changes: 6 additions & 4 deletions addon/mixins/route.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import Ember from 'ember';

const { get } = Ember;

/**
The Ember Infinity Route Mixin enables an application route to load paginated
records for the route `model` as triggered by the controller (or Infinity Loader
Expand Down Expand Up @@ -124,7 +126,7 @@ export default Ember.Mixin.create({
*/
infinityModel(modelName, options, boundParams) {

if (Ember.isEmpty(this.store) || Ember.isEmpty(this.store.find)){
if (Ember.isEmpty(get(this, 'store')) || Ember.isEmpty(get(this, 'store').find)){
throw new Ember.Error("Ember Data store is not available to infinityModel");
} else if (modelName === undefined) {
throw new Ember.Error("You must pass a Model Name to infinityModel");
Expand Down Expand Up @@ -155,7 +157,7 @@ export default Ember.Mixin.create({
}

var params = Ember.merge(requestPayloadBase, options);
var promise = this.store.find(modelName, params);
var promise = get(this, 'store').find(modelName, params);

promise.then(
infinityModel => {
Expand Down Expand Up @@ -201,7 +203,7 @@ export default Ember.Mixin.create({
options = this._includeBoundParams(options, boundParams);

var params = Ember.merge(requestPayloadBase, options);
var promise = this.store.find(modelName, params);
var promise = get(this, 'store').find(modelName, params);

promise.then(
newObjects => {
Expand Down Expand Up @@ -237,7 +239,7 @@ export default Ember.Mixin.create({
/**
include any bound params into the options object.
@method includeBoundParams
@method includeBoundParams
@param {Object} options, the object to include bound params into.
@param {Object} boundParams, an object of properties to be included into options.
@return {Object}
Expand Down
17 changes: 9 additions & 8 deletions tests/unit/mixins/route-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ test('it works', assert => {

test('it can not use infinityModel without Ember Data Store', assert => {
var RouteObject = Ember.Route.extend(RouteMixin, {
store: null,
model() {
return this.infinityModel('post');
}
Expand Down Expand Up @@ -73,7 +74,7 @@ test('it sets state before it reaches the end', assert => {
}
};

route.store = dummyStore;
route.set('store', dummyStore);

var model;
Ember.run(() => {
Expand Down Expand Up @@ -110,7 +111,7 @@ test('it allows customizations of request params', assert => {
}
};

route.store = dummyStore;
route.set('store', dummyStore);

var model;
Ember.run(() => {
Expand Down Expand Up @@ -142,7 +143,7 @@ test('it allows customizations of meta parsing params', assert => {
}
};

route.store = dummyStore;
route.set('store', dummyStore);

var model;
Ember.run(() => {
Expand Down Expand Up @@ -176,7 +177,7 @@ test('it sets state when it reaches the end', assert => {
}
};

route.store = dummyStore;
route.set('store', dummyStore);

var model;
Ember.run(() => {
Expand Down Expand Up @@ -218,7 +219,7 @@ test('it uses extra params when loading more data', assert => {
}
};

route.store = dummyStore;
route.set('store', dummyStore);

var model;
Ember.run(() => {
Expand Down Expand Up @@ -280,7 +281,7 @@ test('it uses overridden params when loading more data', assert => {
}
};

route.store = dummyStore;
route.set('store', dummyStore);

var model;
Ember.run(() => {
Expand Down Expand Up @@ -338,7 +339,7 @@ test('it uses bound params when loading more data', assert => {
}
};

route.store = dummyStore;
route.set('store', dummyStore);

var model;
Ember.run(() => {
Expand Down Expand Up @@ -401,7 +402,7 @@ test('it allows overrides/manual invocations of updateInfinityModel', assert =>
}
};

route.store = dummyStore;
route.set('store', dummyStore);

var model;
Ember.run(() => {
Expand Down

0 comments on commit ffedfff

Please sign in to comment.