ember-resolver
Advanced tools
Comparing version
@@ -23,3 +23,4 @@ /*globals require */ | ||
underscore, | ||
classify | ||
classify, | ||
dasherize | ||
} = Ember.String; | ||
@@ -135,3 +136,2 @@ let { | ||
} | ||
this._deprecatedPodModulePrefix = false; | ||
@@ -145,9 +145,16 @@ }, | ||
_normalize: function(fullName) { | ||
// replace `.` with `/` in order to make nested controllers work in the following cases | ||
// 1. `needs: ['posts/post']` | ||
// 2. `{{render "posts/post"}}` | ||
// 3. `this.render('posts/post')` from Route | ||
// A) Convert underscores to dashes | ||
// B) Convert camelCase to dash-case, except for helpers where we want to avoid shadowing camelCase expressions | ||
// C) replace `.` with `/` in order to make nested controllers work in the following cases | ||
// 1. `needs: ['posts/post']` | ||
// 2. `{{render "posts/post"}}` | ||
// 3. `this.render('posts/post')` from Route | ||
var split = fullName.split(':'); | ||
if (split.length > 1) { | ||
return split[0] + ':' + Ember.String.dasherize(split[1].replace(/\./g, '/')); | ||
if (split[0] === 'helper') { | ||
return split[0] + ':' + split[1].replace(/_/g, '-'); | ||
} else { | ||
return split[0] + ':' + dasherize(split[1].replace(/\./g, '/')); | ||
} | ||
} else { | ||
@@ -262,3 +269,3 @@ return fullName; | ||
if (tmpModuleName) { | ||
tmpModuleName = this.chooseModuleName(tmpModuleName); | ||
tmpModuleName = this.chooseModuleName(tmpModuleName, parsedName); | ||
} | ||
@@ -280,3 +287,3 @@ | ||
chooseModuleName: function(moduleName) { | ||
chooseModuleName: function(moduleName, parsedName) { | ||
var underscoredModuleName = underscore(moduleName); | ||
@@ -292,19 +299,34 @@ | ||
return underscoredModuleName; | ||
} else { | ||
// workaround for dasherized partials: | ||
// something/something/-something => something/something/_something | ||
var partializedModuleName = moduleName.replace(/\/-([^\/]*)$/, '/_$1'); | ||
} | ||
// workaround for dasherized partials: | ||
// something/something/-something => something/something/_something | ||
var partializedModuleName = moduleName.replace(/\/-([^\/]*)$/, '/_$1'); | ||
if (this._moduleRegistry.has(partializedModuleName)) { | ||
Ember.deprecate('Modules should not contain underscores. ' + | ||
'Attempted to lookup "'+moduleName+'" which ' + | ||
'was not found. Please rename "'+partializedModuleName+'" '+ | ||
'to "'+moduleName+'" instead.', false, | ||
{ id: 'ember-resolver.underscored-modules', until: '3.0.0' }); | ||
if (this._moduleRegistry.has(partializedModuleName)) { | ||
Ember.deprecate('Modules should not contain underscores. ' + | ||
'Attempted to lookup "'+moduleName+'" which ' + | ||
'was not found. Please rename "'+partializedModuleName+'" '+ | ||
'to "'+moduleName+'" instead.', false, | ||
{ id: 'ember-resolver.underscored-modules', until: '3.0.0' }); | ||
return partializedModuleName; | ||
} else { | ||
return moduleName; | ||
return partializedModuleName; | ||
} | ||
Ember.runInDebug(() => { | ||
var isCamelCaseHelper = parsedName.type === 'helper' && !!moduleName.match(/[a-z]+[A-Z]+/); | ||
if (isCamelCaseHelper) { | ||
this._camelCaseHelperWarnedNames = this._camelCaseHelperWarnedNames || []; | ||
var alreadyWarned = this._camelCaseHelperWarnedNames.indexOf(parsedName.fullName) > -1; | ||
if (!alreadyWarned && this._moduleRegistry.has(dasherize(moduleName))) { | ||
this._camelCaseHelperWarnedNames.push(parsedName.fullName); | ||
Ember.warn('Attempted to lookup "' + parsedName.fullName + '" which ' + | ||
'was not found. In previous versions of ember-resolver, a bug would have ' + | ||
'caused the module at "' + dasherize(moduleName) + '" to be ' + | ||
'returned for this camel case helper name. This has been fixed. ' + | ||
'Use the dasherized name to resolve the module that would have been ' + | ||
'returned in previous versions.', | ||
false, | ||
{ id: 'ember-resolver.camelcase-helper-names', until: '3.0.0' }); | ||
} | ||
} | ||
} | ||
}); | ||
}, | ||
@@ -311,0 +333,0 @@ |
@@ -0,1 +1,2 @@ | ||
/*jshint node:true*/ | ||
'use strict'; | ||
@@ -2,0 +3,0 @@ |
The MIT License (MIT) | ||
Copyright (c) 2015 | ||
Copyright (c) 2016 | ||
@@ -5,0 +5,0 @@ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: |
{ | ||
"name": "ember-resolver", | ||
"version": "2.1.0", | ||
"version": "2.1.1", | ||
"description": "The default modules based resolver for Ember CLI.", | ||
@@ -11,3 +11,3 @@ "directories": { | ||
"start": "ember server", | ||
"test": "ember try:testall" | ||
"test": "ember try:each" | ||
}, | ||
@@ -19,3 +19,3 @@ "repository": { | ||
"engines": { | ||
"node": ">= 0.10.0" | ||
"node": ">= 0.12" | ||
}, | ||
@@ -25,19 +25,19 @@ "author": "Robert Jackson <me@rwjblue.com>", | ||
"devDependencies": { | ||
"broccoli-asset-rev": "^2.1.2", | ||
"ember-cli": "1.13.8", | ||
"ember-cli-app-version": "0.5.1", | ||
"ember-cli-content-security-policy": "0.4.0", | ||
"ember-cli-dependency-checker": "^1.0.1", | ||
"ember-cli-htmlbars": "^1.0.0", | ||
"ember-cli-htmlbars-inline-precompile": "^0.2.0", | ||
"ember-cli-ic-ajax": "0.2.1", | ||
"ember-cli-inject-live-reload": "^1.3.1", | ||
"ember-cli-qunit": "^1.0.1", | ||
"ember-cli-release": "^0.2.6", | ||
"ember-cli-sri": "^1.0.3", | ||
"broccoli-asset-rev": "^2.4.2", | ||
"ember-cli": "2.8.0", | ||
"ember-cli-app-version": "^1.0.0", | ||
"ember-cli-dependency-checker": "^1.2.0", | ||
"ember-cli-htmlbars": "^1.0.3", | ||
"ember-cli-htmlbars-inline-precompile": "^0.3.1", | ||
"ember-cli-inject-live-reload": "^1.4.0", | ||
"ember-cli-jshint": "^1.0.0", | ||
"ember-cli-qunit": "^2.1.0", | ||
"ember-cli-release": "^0.2.9", | ||
"ember-cli-sri": "^2.1.0", | ||
"ember-cli-test-loader": "^1.1.0", | ||
"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.4", | ||
"ember-try": "~0.0.8" | ||
"ember-disable-prototype-extensions": "^1.1.0", | ||
"ember-export-application-global": "^1.0.5", | ||
"ember-load-initializers": "^0.5.1", | ||
"loader.js": "^4.0.1" | ||
}, | ||
@@ -48,4 +48,4 @@ "keywords": [ | ||
"dependencies": { | ||
"ember-cli-babel": "^5.1.3", | ||
"ember-cli-version-checker": "^1.1.4" | ||
"ember-cli-babel": "^5.1.6", | ||
"ember-cli-version-checker": "^1.1.6" | ||
}, | ||
@@ -52,0 +52,0 @@ "ember-addon": { |
45987
-0.59%20
-9.09%518
-7.99%Updated