Skip to content

Commit 68719dd

Browse files
committed
Merge pull request #11900 from rwjblue/deprecate-various-helpery-things
Deprecate legacy helper versions.
2 parents 2c137a1 + a3d268d commit 68719dd

17 files changed

+175
-72
lines changed

packages/ember-application/tests/system/dependency_injection/default_resolver_test.js

+13-3
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,19 @@ QUnit.test('the default resolver resolves helpers on the namespace', function()
124124
let ShorthandHelper = makeHelper(function() {});
125125
let CompleteHelper = Helper.extend();
126126
let LegacyBareFunctionHelper = function() {};
127-
let LegacyHandlebarsBoundHelper = makeHandlebarsBoundHelper(function() {});
128-
let LegacyHTMLBarsBoundHelper = makeHTMLBarsBoundHelper(function() {});
129-
let ViewHelper = makeViewHelper(function() {});
127+
let ViewHelper, LegacyHandlebarsBoundHelper, LegacyHTMLBarsBoundHelper;
128+
129+
expectDeprecation(function() {
130+
LegacyHandlebarsBoundHelper = makeHandlebarsBoundHelper(function() {});
131+
}, 'Using Ember.Handlebars.makeBoundHelper is deprecated. Please refactor to using `Ember.Helper.helper`.');
132+
133+
expectDeprecation(function() {
134+
LegacyHTMLBarsBoundHelper = makeHTMLBarsBoundHelper(function() {});
135+
}, 'Using `Ember.HTMLBars.makeBoundHelper` is deprecated. Please refactor to using `Ember.Helper` or `Ember.Helper.helper`.');
136+
137+
expectDeprecation(function() {
138+
ViewHelper = makeViewHelper(function() {});
139+
}, '`Ember.Handlebars.makeViewHelper` and `Ember.HTMLBars.makeViewHelper` are deprecated. Please refactor to normal component usage.');
130140

131141
application.ShorthandHelper = ShorthandHelper;
132142
application.CompleteHelper = CompleteHelper;

packages/ember-htmlbars/lib/compat/helper.js

+12
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,12 @@ HandlebarsCompatibleHelper.prototype = {
109109
};
110110

111111
export function registerHandlebarsCompatibleHelper(name, value) {
112+
Ember.deprecate(
113+
'Ember.Handlebars.registerHelper is deprecated, please refactor to Ember.Helper.helper.',
114+
false,
115+
{ id: 'ember-htmlbars.handlebars-register-helper', until: '2.0.0' }
116+
);
117+
112118
if (value && value.isLegacyViewHelper) {
113119
registerKeyword(name, function(morph, env, scope, params, hash, template, inverse, visitor) {
114120
Ember.assert('You can only pass attributes (such as name=value) not bare ' +
@@ -132,6 +138,12 @@ export function registerHandlebarsCompatibleHelper(name, value) {
132138
}
133139

134140
export function handlebarsHelper(name, value) {
141+
Ember.deprecate(
142+
'Ember.Handlebars.helper is deprecated, please refactor to Ember.Helper.helper',
143+
false,
144+
{ id: 'ember-htmlbars.handlebars-helper', until: '2.0.0' }
145+
);
146+
135147
Ember.assert(`You tried to register a component named '${name}', but component names must include a '-'`,
136148
!Component.detect(value) || name.match(/-/));
137149

packages/ember-htmlbars/lib/compat/make-bound-helper.js

+12-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ import {
3737
@deprecated
3838
@private
3939
*/
40-
export default function makeBoundHelper(fn, ...dependentKeys) {
40+
41+
export function makeBoundHelper(fn, ...dependentKeys) {
4142
return {
4243
_dependentKeys: dependentKeys,
4344

@@ -65,3 +66,13 @@ export default function makeBoundHelper(fn, ...dependentKeys) {
6566
}
6667
};
6768
}
69+
70+
export default function deprecatedMakeBoundHelper(fn, ...dependentKeys) {
71+
Ember.deprecate(
72+
'Using Ember.Handlebars.makeBoundHelper is deprecated. Please refactor to using `Ember.Helper.helper`.',
73+
false,
74+
{ id: 'ember-htmlbars.handlebars-make-bound-helper', until: '2.0.0' }
75+
);
76+
77+
return makeBoundHelper(...arguments);
78+
}

packages/ember-htmlbars/lib/compat/register-bound-helper.js

+14-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
@submodule ember-htmlbars
44
*/
55

6+
import Ember from 'ember-metal/core';
67
import helpers from 'ember-htmlbars/helpers';
7-
import makeBoundHelper from 'ember-htmlbars/compat/make-bound-helper';
8+
import { makeBoundHelper } from 'ember-htmlbars/compat/make-bound-helper';
89

910
var slice = [].slice;
1011

@@ -118,9 +119,20 @@ var slice = [].slice;
118119
@param {String} dependentKeys*
119120
@private
120121
*/
121-
export default function registerBoundHelper(name, fn) {
122+
123+
export function registerBoundHelper(name, fn) {
122124
var boundHelperArgs = slice.call(arguments, 1);
123125
var boundFn = makeBoundHelper.apply(this, boundHelperArgs);
124126

125127
helpers[name] = boundFn;
126128
}
129+
130+
export default function deprecatedRegisterBoundHelper() {
131+
Ember.deprecate(
132+
'`Ember.Handlebars.registerBoundHelper` is deprecated. Please refactor to use `Ember.Helpers.helper`.',
133+
false,
134+
{ id: 'ember-htmlbars.register-bound-helper', until: '2.0.0' }
135+
);
136+
137+
return registerBoundHelper(...arguments);
138+
}

packages/ember-htmlbars/lib/helpers.js

+7
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
@private
88
@property helpers
99
*/
10+
import Ember from 'ember-metal/core';
11+
1012
var helpers = Object.create(null);
1113

1214
/**
@@ -25,4 +27,9 @@ export function registerHelper(name, helperFunc) {
2527
helpers[name] = helperFunc;
2628
}
2729

30+
export let deprecatedRegisterHelper = Ember.deprecateFunc(
31+
'Using Ember.HTMLBars._registerHelper is deprecated. Helpers (even dashless ones) are automatically resolved.',
32+
{ id: 'ember-htmlbars.register-helper', until: '2.0.0' },
33+
registerHelper);
34+
2835
export default helpers;

packages/ember-htmlbars/lib/main.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ import makeViewHelper from 'ember-htmlbars/system/make-view-helper';
3636
import makeBoundHelper from 'ember-htmlbars/system/make_bound_helper';
3737

3838
import {
39-
registerHelper
39+
registerHelper,
40+
deprecatedRegisterHelper
4041
} from 'ember-htmlbars/helpers';
4142
import {
4243
ifHelper,
@@ -84,7 +85,7 @@ if (Ember.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
8485
}
8586

8687
Ember.HTMLBars = {
87-
_registerHelper: registerHelper,
88+
_registerHelper: deprecatedRegisterHelper,
8889
template: template,
8990
compile: compile,
9091
precompile: precompile,

packages/ember-htmlbars/lib/system/make-view-helper.js

+8
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import Ember from 'ember-metal/core';
2+
13
/**
24
@module ember
35
@submodule ember-htmlbars
@@ -15,6 +17,12 @@
1517
@since 1.2.0
1618
*/
1719
export default function makeViewHelper(ViewClass) {
20+
Ember.deprecate(
21+
'`Ember.Handlebars.makeViewHelper` and `Ember.HTMLBars.makeViewHelper` are deprecated. Please refactor to normal component usage.',
22+
false,
23+
{ id: 'ember-htmlbars.make-view-helper', until: '2.0.0' }
24+
);
25+
1826
return {
1927
isLegacyViewHelper: true,
2028
isHTMLBars: true,

packages/ember-htmlbars/lib/system/make_bound_helper.js

+6-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
@module ember
33
@submodule ember-htmlbars
44
*/
5-
5+
import Ember from 'ember-metal/core';
66
import { helper } from 'ember-htmlbars/helper';
77

88
/**
@@ -49,5 +49,10 @@ import { helper } from 'ember-htmlbars/helper';
4949
@since 1.10.0
5050
*/
5151
export default function makeBoundHelper(fn) {
52+
Ember.deprecate(
53+
'Using `Ember.HTMLBars.makeBoundHelper` is deprecated. Please refactor to using `Ember.Helper` or `Ember.Helper.helper`.',
54+
false,
55+
{ id: 'ember-htmlbars.make-bound-helper', until: '3.0.0' }
56+
);
5257
return helper(fn);
5358
}

packages/ember-htmlbars/tests/compat/helper_test.js

+30-17
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {
2-
registerHandlebarsCompatibleHelper
2+
registerHandlebarsCompatibleHelper as registerHelper
33
} from 'ember-htmlbars/compat/helper';
44

55
import EmberView from 'ember-views/views/view';
@@ -18,6 +18,12 @@ import viewKeyword from 'ember-htmlbars/keywords/view';
1818

1919
var view, registry, container, originalViewKeyword;
2020

21+
function registerHandlebarsCompatibleHelper() {
22+
expectDeprecation('Ember.Handlebars.registerHelper is deprecated, please refactor to Ember.Helper.helper.');
23+
24+
return registerHelper(...arguments);
25+
}
26+
2127
QUnit.module('ember-htmlbars: compat - Handlebars compatible helpers', {
2228
setup() {
2329
originalViewKeyword = registerKeyword('view', viewKeyword);
@@ -40,7 +46,7 @@ QUnit.module('ember-htmlbars: compat - Handlebars compatible helpers', {
4046
});
4147

4248
QUnit.test('wraps provided function so that original path params are provided to the helper', function() {
43-
expect(2);
49+
expect(3);
4450

4551
function someHelper(param1, param2, options) {
4652
equal(param1, 'blammo');
@@ -60,7 +66,7 @@ QUnit.test('wraps provided function so that original path params are provided to
6066
});
6167

6268
QUnit.test('combines `env` and `options` for the wrapped helper', function() {
63-
expect(1);
69+
expect(2);
6470

6571
function someHelper(options) {
6672
equal(options.data.view, view);
@@ -79,7 +85,7 @@ QUnit.test('combines `env` and `options` for the wrapped helper', function() {
7985
});
8086

8187
QUnit.test('combines `env` and `options` for the wrapped helper', function() {
82-
expect(1);
88+
expect(2);
8389

8490
function someHelper(options) {
8591
equal(options.data.view, view);
@@ -122,7 +128,7 @@ QUnit.test('has the correct options.data.view within a components layout', funct
122128
});
123129

124130
QUnit.test('adds `hash` into options `options` for the wrapped helper', function() {
125-
expect(1);
131+
expect(2);
126132

127133
function someHelper(options) {
128134
equal(options.hash.bestFriend, 'Jacquie');
@@ -141,7 +147,7 @@ QUnit.test('adds `hash` into options `options` for the wrapped helper', function
141147
});
142148

143149
QUnit.test('bound `hash` params are provided with their original paths', function() {
144-
expect(1);
150+
expect(2);
145151

146152
function someHelper(options) {
147153
equal(options.hash.bestFriend, 'value');
@@ -160,7 +166,7 @@ QUnit.test('bound `hash` params are provided with their original paths', functio
160166
});
161167

162168
QUnit.test('bound ordered params are provided with their original paths', function() {
163-
expect(2);
169+
expect(3);
164170

165171
function someHelper(param1, param2, options) {
166172
equal(param1, 'first');
@@ -181,13 +187,17 @@ QUnit.test('bound ordered params are provided with their original paths', functi
181187
});
182188

183189
QUnit.test('registering a helper created from `Ember.Handlebars.makeViewHelper` does not double wrap the helper', function() {
184-
expect(1);
190+
expect(3);
185191

186192
var ViewHelperComponent = Component.extend({
187193
layout: compile('woot!')
188194
});
189195

190-
var helper = makeViewHelper(ViewHelperComponent);
196+
var helper;
197+
expectDeprecation(function() {
198+
helper = makeViewHelper(ViewHelperComponent);
199+
}, '`Ember.Handlebars.makeViewHelper` and `Ember.HTMLBars.makeViewHelper` are deprecated. Please refactor to normal component usage.');
200+
191201
registerHandlebarsCompatibleHelper('view-helper', helper);
192202

193203
view = EmberView.extend({
@@ -200,15 +210,18 @@ QUnit.test('registering a helper created from `Ember.Handlebars.makeViewHelper`
200210
});
201211

202212
QUnit.test('makes helpful assertion when called with invalid arguments', function() {
203-
expect(1);
213+
expect(3);
204214

205215
var ViewHelperComponent = Component.extend({
206216
layout: compile('woot!')
207217
});
208218

209219
ViewHelperComponent.toString = function() { return 'Some Random Class'; };
210220

211-
var helper = makeViewHelper(ViewHelperComponent);
221+
var helper;
222+
expectDeprecation(function() {
223+
helper = makeViewHelper(ViewHelperComponent);
224+
}, '`Ember.Handlebars.makeViewHelper` and `Ember.HTMLBars.makeViewHelper` are deprecated. Please refactor to normal component usage.');
212225
registerHandlebarsCompatibleHelper('view-helper', helper);
213226

214227
view = EmberView.extend({
@@ -221,7 +234,7 @@ QUnit.test('makes helpful assertion when called with invalid arguments', functio
221234
});
222235

223236
QUnit.test('does not add `options.fn` if no block was specified', function() {
224-
expect(1);
237+
expect(2);
225238

226239
function someHelper(options) {
227240
ok(!options.fn, '`options.fn` is not present when block is not specified');
@@ -240,7 +253,7 @@ QUnit.test('does not add `options.fn` if no block was specified', function() {
240253
});
241254

242255
QUnit.test('does not return helper result if block was specified', function() {
243-
expect(1);
256+
expect(2);
244257

245258
function someHelper(options) {
246259
return 'asdf';
@@ -261,7 +274,7 @@ QUnit.test('does not return helper result if block was specified', function() {
261274
});
262275

263276
QUnit.test('allows usage of the template fn', function() {
264-
expect(1);
277+
expect(2);
265278

266279
function someHelper(options) {
267280
options.fn();
@@ -282,7 +295,7 @@ QUnit.test('allows usage of the template fn', function() {
282295
});
283296

284297
QUnit.test('allows usage of the template inverse', function() {
285-
expect(1);
298+
expect(2);
286299

287300
function someHelper(options) {
288301
options.inverse();
@@ -303,7 +316,7 @@ QUnit.test('allows usage of the template inverse', function() {
303316
});
304317

305318
QUnit.test('ordered param types are added to options.types', function() {
306-
expect(3);
319+
expect(4);
307320

308321
function someHelper(param1, param2, param3, options) {
309322
equal(options.types[0], 'NUMBER');
@@ -325,7 +338,7 @@ QUnit.test('ordered param types are added to options.types', function() {
325338
});
326339

327340
QUnit.test('`hash` params are to options.hashTypes', function() {
328-
expect(3);
341+
expect(4);
329342

330343
function someHelper(options) {
331344
equal(options.hashTypes.string, 'STRING');

packages/ember-htmlbars/tests/compat/make-view-helper_test.js

+7-2
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,17 @@ QUnit.module('ember-htmlbars: compat - makeViewHelper compat', {
2828
});
2929

3030
QUnit.test('makeViewHelper', function() {
31-
expect(1);
31+
expect(2);
3232

3333
var ViewHelperComponent = Component.extend({
3434
layout: compile('woot!')
3535
});
36-
var helper = makeViewHelper(ViewHelperComponent);
36+
37+
var helper;
38+
expectDeprecation(function() {
39+
helper = makeViewHelper(ViewHelperComponent);
40+
}, '`Ember.Handlebars.makeViewHelper` and `Ember.HTMLBars.makeViewHelper` are deprecated. Please refactor to normal component usage.');
41+
3742
registry.register('helper:view-helper', helper);
3843

3944
view = EmberView.extend({

packages/ember-htmlbars/tests/compat/make_bound_helper_test.js

+1-12
Original file line numberDiff line numberDiff line change
@@ -43,25 +43,14 @@ function expectDeprecationInHTMLBars() {
4343

4444
QUnit.module('ember-htmlbars: compat - makeBoundHelper', {
4545
setup() {
46+
expectDeprecation('Using Ember.Handlebars.makeBoundHelper is deprecated. Please refactor to using `Ember.Helper.helper`.');
4647
},
4748
teardown() {
4849
runDestroy(view);
4950
Ember.lookup = originalLookup;
5051
}
5152
});
5253

53-
QUnit.test('primitives should work correctly [DEPRECATED]', function() {
54-
view = EmberView.create({
55-
prims: Ember.A(['string', 12]),
56-
57-
template: compile('{{#each view.prims as |prim|}}{{#if prim}}inside-if{{/if}}{{/each}}')
58-
});
59-
60-
runAppend(view);
61-
62-
equal(view.$().text(), 'inside-ifinside-if');
63-
});
64-
6554
QUnit.test('should update bound helpers when properties change', function() {
6655
expectDeprecationInHTMLBars();
6756

0 commit comments

Comments
 (0)