From 78b5384ebb5673752b568c915f673a00c3b3b8a3 Mon Sep 17 00:00:00 2001 From: Mike North Date: Sat, 22 Aug 2015 23:18:27 -0700 Subject: [PATCH 1/2] Cleanup for ember 2.0 --- .travis.yml | 7 ++++--- addon/mixins/resize-aware.js | 13 ++++++++----- addon/services/resize.js | 13 +++++++------ bower.json | 8 ++++---- config/ember-try.js | 18 ++++++++++++++++++ package.json | 20 ++++++++++---------- tests/.jshintrc | 8 ++++---- tests/dummy/app/views/application.js | 4 ++-- tests/dummy/config/environment.js | 1 + tests/helpers/start-app.js | 1 - tests/unit/services/resize-test.js | 15 +++++++-------- 11 files changed, 65 insertions(+), 43 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5f616f1e..34d5b058 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,19 +7,20 @@ cache: - node_modules env: matrix: - - EMBER_TRY_SCENARIO=default - EMBER_TRY_SCENARIO=ember-1.10 - EMBER_TRY_SCENARIO=ember-1.11 + - EMBER_TRY_SCENARIO=ember-1.12 + - EMBER_TRY_SCENARIO=ember-1.13 - EMBER_TRY_SCENARIO=ember-release - EMBER_TRY_SCENARIO=ember-beta - - EMBER_TRY_SCENARIO=ember-canary + - ALLOW_DEPRECATIONS=true EMBER_TRY_SCENARIO=ember-canary global: secure: mlHPZlkzVu5JpCzFNz+o/+DGyI6K2VLh5fY2zoAjuClRazPJ/04tKo8Fxol5U32jpeI6LXJlsyu+lO914q2L0M6+i7iTU1XFeL9PbSdK8IK1AdHWFiJAlli+7eDpkan3FnSg9Y3yjmYrKcaVimVMDmk0GlSiUBOlyic/gEj5uPguC1ACwzFVkwgOrxzUITLg6qtwgYGyJUY8QJb3baoFtZZrpSFqHvzPl2Wr7AIXAcVldl7S5fQUEsQ8gKEa8ZCbCMWvebNXDf8v7C/OwjJnh9awZDcNE5pPavV3mvftDY9QQEulxhhoXowJR/X+1lMcMzgkNtEcDceoRSTHG4z98ASQjsx6aywsZiGaqZlfCvpgkmruXTjCaVPR5lGd1imP+arrxlN6Kn6m+kKdf9KnmV7UIt+Q4lbDsWkNQXNuLC8Ag6okJSPXI3CghxRC8L/NR7iiapjs4SrImTUu9+eJMal93FTWqjQdTkZYWYD5ncKvOzFOX7w+PkmVAH/R8nnuQ+MZwhqi3TO7ieWGcC59mS7BeNokElXSpGUiR+4YahZMNYM27XV8RHXpik8DBvrlHQGtCpNtmZwmNSKR66Y/QgKdL1FJ7XEc+LqeRqkXXe9mEbcfMY7YzWDK1dc4+lFwRq24yxVX0/d40fe4T5CZ5K6RkHODpyHY15CYorEXT0c= matrix: fast_finish: true allow_failures: - - env: EMBER_TRY_SCENARIO=ember-canary + - env: ALLOW_DEPRECATIONS=true EMBER_TRY_SCENARIO=ember-canary before_install: - mkdir travis-phantomjs diff --git a/addon/mixins/resize-aware.js b/addon/mixins/resize-aware.js index 3413b9eb..13144895 100644 --- a/addon/mixins/resize-aware.js +++ b/addon/mixins/resize-aware.js @@ -1,6 +1,9 @@ import Ember from 'ember'; -export default Ember.Mixin.create({ +const { Mixin } = Ember; +const { floor } = Math; + +export default Mixin.create({ resizeEventsEnabled: true, resizeDebouncedEventsEnabled: true, @@ -39,8 +42,8 @@ export default Ember.Mixin.create({ }, _handleResizeEvent(evt) { - const w = Math.floor(this._getComponentSize().width); - const h = Math.floor(this._getComponentSize().height); + const w = floor(this._getComponentSize().width); + const h = floor(this._getComponentSize().height); if ((this.get('resizeWidthSensitive') && (this.get('_oldViewWidth') !== w)) || (this.get('resizeHeightSensitive') && (this.get('_oldViewHeight') !== h))) { this.didResize(w, h, evt); @@ -52,8 +55,8 @@ export default Ember.Mixin.create({ }, _handleDebouncedResizeEvent(evt) { - const w = Math.floor(this._getComponentSize().width); - const h = Math.floor(this._getComponentSize().height); + const w = floor(this._getComponentSize().width); + const h = floor(this._getComponentSize().height); if ((this.get('resizeWidthSensitive') && (this.get('_oldViewWidthDebounced') !== w)) || (this.get('resizeHeightSensitive') && (this.get('_oldViewHeightDebounced') !== h))) { this.debouncedDidResize(w, h, evt); diff --git a/addon/services/resize.js b/addon/services/resize.js index 9cd79bbc..a9324909 100644 --- a/addon/services/resize.js +++ b/addon/services/resize.js @@ -2,24 +2,25 @@ import Ember from 'ember'; const Base = Ember.Service || Ember.Object; const keys = Object.keys || Ember.keys; -const { classify } = Ember.String; -export default Base.extend(Ember.Evented, { +const { Evented, String: { classify }, computed: { oneWay }, run: { debounce } } = Ember; + +export default Base.extend(Evented, { _oldWidth: null, _oldHeight: null, _oldWidthDebounced: null, _oldHeightDebounced: null, - debounceTimeout: Ember.computed.oneWay('defaultDebounceTimeout'), - widthSensitive: Ember.computed.oneWay('defaultWidthSensitive'), - heightSensitive: Ember.computed.oneWay('defaultHeightSensitive'), + debounceTimeout: oneWay('defaultDebounceTimeout'), + widthSensitive: oneWay('defaultWidthSensitive'), + heightSensitive: oneWay('defaultHeightSensitive'), init() { this._super(...arguments); this._setDefaults(); this._onResizeHandler = evt => { this._fireResizeNotification(evt); - Ember.run.debounce(this, this._fireDebouncedResizeNotification, evt, this.get('debounceTimeout')); + debounce(this, this._fireDebouncedResizeNotification, evt, this.get('debounceTimeout')); }; this._installResizeListener(); }, diff --git a/bower.json b/bower.json index c2f3be75..1e1092e1 100644 --- a/bower.json +++ b/bower.json @@ -5,11 +5,11 @@ "ember-cli-shims": "ember-cli/ember-cli-shims#0.0.3", "ember-cli-test-loader": "ember-cli-test-loader#0.1.3", "ember-load-initializers": "ember-cli/ember-load-initializers#0.1.5", - "ember-qunit": "0.4.1", + "ember-qunit": "0.4.9", "ember-qunit-notifications": "0.0.7", "ember-resolver": "~0.1.18", - "jquery": "^1.11.1", - "loader.js": "ember-cli/loader.js#3.2.0", - "qunit": "~1.17.1" + "jquery": "^1.11.3", + "loader.js": "ember-cli/loader.js#3.2.1", + "qunit": "~1.18.0" } } diff --git a/config/ember-try.js b/config/ember-try.js index 82ba365b..b547d5e4 100644 --- a/config/ember-try.js +++ b/config/ember-try.js @@ -22,6 +22,24 @@ module.exports = { ember: '~1.11.0' } }, + { + name: 'ember-1.12', + dependencies: { + ember: '~1.12.0' + }, + resolutions: { + ember: '~1.12.0' + } + }, + { + name: 'ember-1.13', + dependencies: { + ember: '~1.13.0' + }, + resolutions: { + ember: '~1.13.0' + } + }, { name: 'ember-release', dependencies: { diff --git a/package.json b/package.json index 5f106ea7..640020a4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ember-resize", - "version": "0.0.8", + "version": "0.0.9", "description": "Idiomatically handle window and view resizes in Ember.js", "directories": { "doc": "doc", @@ -19,21 +19,21 @@ "author": "Mike North (http://mike.works)", "license": "MIT", "devDependencies": { - "broccoli-asset-rev": "^2.0.2", - "ember-cli": "1.13.1", - "ember-cli-app-version": "0.3.5", + "broccoli-asset-rev": "^2.1.2", + "ember-cli": "1.13.8", + "ember-cli-app-version": "0.5.0", "ember-cli-content-security-policy": "0.4.0", - "ember-cli-dependency-checker": "^1.0.0", + "ember-cli-dependency-checker": "^1.0.1", "ember-cli-github-pages": "0.0.6", "ember-cli-htmlbars": "0.7.9", "ember-cli-ic-ajax": "0.2.1", - "ember-cli-inject-live-reload": "^1.3.0", - "ember-cli-qunit": "0.3.15", + "ember-cli-inject-live-reload": "^1.3.1", + "ember-cli-qunit": "^1.0.0", "ember-cli-sauce": "1.3.0", - "ember-cli-uglify": "^1.0.1", + "ember-cli-uglify": "^1.2.0", "ember-disable-prototype-extensions": "^1.0.0", "ember-disable-proxy-controllers": "^1.0.0", - "ember-export-application-global": "^1.0.2", + "ember-export-application-global": "^1.0.4", "ember-legacy-views": "0.2.0", "ember-new-computed": "1.0.0", "ember-suave": "~0.1.9", @@ -44,7 +44,7 @@ "resize" ], "dependencies": { - "ember-cli-babel": "^5.0.0" + "ember-cli-babel": "^5.1.3" }, "ember-addon": { "configPath": "tests/dummy/config", diff --git a/tests/.jshintrc b/tests/.jshintrc index 9504aad7..6ec0b7c1 100644 --- a/tests/.jshintrc +++ b/tests/.jshintrc @@ -21,13 +21,12 @@ "andThen", "currentURL", "currentPath", - "currentRouteName", - "QUnit" + "currentRouteName" ], "node": false, "browser": false, "boss": true, - "curly": false, + "curly": true, "debug": false, "devel": false, "eqeqeq": true, @@ -48,5 +47,6 @@ "strict": false, "white": false, "eqnull": true, - "esnext": true + "esnext": true, + "unused": true } diff --git a/tests/dummy/app/views/application.js b/tests/dummy/app/views/application.js index c00618a2..0fe83eb5 100644 --- a/tests/dummy/app/views/application.js +++ b/tests/dummy/app/views/application.js @@ -4,14 +4,14 @@ export default Ember.View.extend({ resizeEvents: Ember.A([]), didInsertElement() { this._super(...arguments); - this.get('resizeService').on('debouncedDidResize', evt => { + this.get('resizeService').on('debouncedDidResize', () => { this.get('resizeEvents').addObject({ width: window.innerWidth, height: window.innerHeight, debounced: true }); }); - this.get('resizeService').on('didResize', evt => { + this.get('resizeService').on('didResize', () => { this.get('resizeEvents').addObject({ width: window.innerWidth, height: window.innerHeight, diff --git a/tests/dummy/config/environment.js b/tests/dummy/config/environment.js index c67fe160..371328eb 100644 --- a/tests/dummy/config/environment.js +++ b/tests/dummy/config/environment.js @@ -28,6 +28,7 @@ module.exports = function(environment) { } if (environment === 'test') { + ENV.EmberENV.RAISE_ON_DEPRECATION = !process.env['ALLOW_DEPRECATIONS']; // Testem prefers this... ENV.baseURL = '/'; ENV.locationType = 'none'; diff --git a/tests/helpers/start-app.js b/tests/helpers/start-app.js index 39eed65d..5949d536 100644 --- a/tests/helpers/start-app.js +++ b/tests/helpers/start-app.js @@ -1,6 +1,5 @@ import Ember from 'ember'; import Application from '../../app'; -import Router from '../../router'; import config from '../../config/environment'; export default function startApp(attrs) { diff --git a/tests/unit/services/resize-test.js b/tests/unit/services/resize-test.js index c5809bb5..28ddf6b5 100644 --- a/tests/unit/services/resize-test.js +++ b/tests/unit/services/resize-test.js @@ -33,7 +33,7 @@ test('it fires "didResize" when the window is resized', function(assert) { test('it fires "debouncedDidResize" when the window is resized', function(assert) { - QUnit.stop(); + window.QUnit.stop(); let service = this.subject({ widthSensitive: false, @@ -46,20 +46,19 @@ test('it fires "debouncedDidResize" when the window is resized', function(asser }); let evt = new window.Event('resize'); - let evtCount = 0; function triggerEvent() { window.dispatchEvent(evt); } for (let i = 0; i < 6; i++) { - Ember.run.next(triggerEvent); + Ember.run.later(triggerEvent, 10); } assert.equal(debouncedDidResizeCallCount, 0, 'debouncedDidResize not called yet'); - // Ember.run.later(() => { - // assert.equal(debouncedDidResizeCallCount, 1, 'debouncedDidResize called 1 time after 500ms'); - // QUnit.start(); - // }, 500); - QUnit.start(); + Ember.run.later(() => { + assert.equal(debouncedDidResizeCallCount, 1, 'debouncedDidResize called 1 time after 500ms'); + window.QUnit.start(); + }, 500); + }); From 9039d4082e0d5570cdb04bba0bb77c2be88ef917 Mon Sep 17 00:00:00 2001 From: Mike North Date: Sat, 22 Aug 2015 23:58:26 -0700 Subject: [PATCH 2/2] Update resolver --- app/initializers/resize.js | 4 +++- bower.json | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/initializers/resize.js b/app/initializers/resize.js index c345b92f..72d160c2 100644 --- a/app/initializers/resize.js +++ b/app/initializers/resize.js @@ -1,7 +1,9 @@ import ResizeService from 'ember-resize/services/resize'; import config from '../config/environment'; -export function initialize(_container, application) { +export function initialize() { + let application = arguments[1] || arguments[0]; + const { resizeServiceDefaults } = config; const { injectionFactories } = resizeServiceDefaults; diff --git a/bower.json b/bower.json index 1e1092e1..ab4847f0 100644 --- a/bower.json +++ b/bower.json @@ -7,7 +7,7 @@ "ember-load-initializers": "ember-cli/ember-load-initializers#0.1.5", "ember-qunit": "0.4.9", "ember-qunit-notifications": "0.0.7", - "ember-resolver": "~0.1.18", + "ember-resolver": "mike-north/ember-resolver#new-initializer", "jquery": "^1.11.3", "loader.js": "ember-cli/loader.js#3.2.1", "qunit": "~1.18.0"