Skip to content

Commit

Permalink
Merge pull request #61 from rwjblue/allow-components-to-be-grouped
Browse files Browse the repository at this point in the history
Allow components to be grouped together in a single subdirectory.
  • Loading branch information
stefanpenner committed Jul 24, 2014
2 parents 5ed8b17 + daa4072 commit 42f539c
Show file tree
Hide file tree
Showing 9 changed files with 169 additions and 11 deletions.
2 changes: 1 addition & 1 deletion dist/ember-resolver-spade.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/ember-resolver-tests.js

Large diffs are not rendered by default.

19 changes: 17 additions & 2 deletions dist/ember-resolver.js
Original file line number Diff line number Diff line change
Expand Up @@ -168,8 +168,7 @@ define("ember/resolver",
}
},

podBasedModuleName: function(parsedName) {
var podPrefix = this.namespace.podModulePrefix || this.namespace.modulePrefix;
podBasedLookupWithPrefix: function(podPrefix, parsedName) {
var fullNameWithoutType = parsedName.fullNameWithoutType;

if (parsedName.type === 'template') {
Expand All @@ -179,6 +178,21 @@ define("ember/resolver",
return podPrefix + '/' + fullNameWithoutType + '/' + parsedName.type;
},

podBasedModuleName: function(parsedName) {
var podPrefix = this.namespace.podModulePrefix || this.namespace.modulePrefix;

return this.podBasedLookupWithPrefix(podPrefix, parsedName);
},

podBasedComponentsInSubdir: function(parsedName) {
var podPrefix = this.namespace.podModulePrefix || this.namespace.modulePrefix;
podPrefix = podPrefix + '/components';

if (parsedName.type === 'component' || parsedName.fullNameWithoutType.match(/^components/)) {
return this.podBasedLookupWithPrefix(podPrefix, parsedName);
}
},

mainModuleName: function(parsedName) {
// if router:main or adapter:main look for a module with just the type first
var tmpModuleName = this.prefix(parsedName) + '/' + parsedName.type;
Expand Down Expand Up @@ -214,6 +228,7 @@ define("ember/resolver",
moduleNameLookupPatterns: Ember.computed(function(){
return Ember.A([
this.podBasedModuleName,
this.podBasedComponentsInSubdir,
this.mainModuleName,
this.defaultModuleName
]);
Expand Down
2 changes: 1 addition & 1 deletion dist/ember-resolver.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 17 additions & 2 deletions dist/ember-resolver.prod.js
Original file line number Diff line number Diff line change
Expand Up @@ -168,8 +168,7 @@ define("ember/resolver",
}
},

podBasedModuleName: function(parsedName) {
var podPrefix = this.namespace.podModulePrefix || this.namespace.modulePrefix;
podBasedLookupWithPrefix: function(podPrefix, parsedName) {
var fullNameWithoutType = parsedName.fullNameWithoutType;

if (parsedName.type === 'template') {
Expand All @@ -179,6 +178,21 @@ define("ember/resolver",
return podPrefix + '/' + fullNameWithoutType + '/' + parsedName.type;
},

podBasedModuleName: function(parsedName) {
var podPrefix = this.namespace.podModulePrefix || this.namespace.modulePrefix;

return this.podBasedLookupWithPrefix(podPrefix, parsedName);
},

podBasedComponentsInSubdir: function(parsedName) {
var podPrefix = this.namespace.podModulePrefix || this.namespace.modulePrefix;
podPrefix = podPrefix + '/components';

if (parsedName.type === 'component' || parsedName.fullNameWithoutType.match(/^components/)) {
return this.podBasedLookupWithPrefix(podPrefix, parsedName);
}
},

mainModuleName: function(parsedName) {
// if router:main or adapter:main look for a module with just the type first
var tmpModuleName = this.prefix(parsedName) + '/' + parsedName.type;
Expand Down Expand Up @@ -214,6 +228,7 @@ define("ember/resolver",
moduleNameLookupPatterns: Ember.computed(function(){
return Ember.A([
this.podBasedModuleName,
this.podBasedComponentsInSubdir,
this.mainModuleName,
this.defaultModuleName
]);
Expand Down
49 changes: 49 additions & 0 deletions dist/modules/ember-resolver-tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -376,5 +376,54 @@ test("will lookup a components template without being rooted in `components/`",
resolver.resolve('template:components/foo-bar');
});

test("will use pods format to lookup components in components/", function() {
expect(2);

define('appkit/components/foo-bar/template', [], function(){
ok(true, 'appkit/components was used');
return 'whatever';
});

define('appkit/components/foo-bar/component', [], function(){
ok(true, 'appkit/components was used');
return 'whatever';
});

resolver.resolve('template:components/foo-bar');
resolver.resolve('component:foo-bar');
});

test("will not lookup routes in components/", function() {
expect(1);

define('appkit/components/foo-bar/route', [], function(){
ok(false, 'appkit/components was used');
return 'whatever';
});

define('appkit/routes/foo-bar', [], function(){
ok(true, 'appkit/routes was used');
return 'whatever';
});

resolver.resolve('route:foo-bar');
});

test("will not lookup non component templates in components/", function() {
expect(1);

define('appkit/components/foo-bar/template', [], function(){
ok(false, 'appkit/components was used');
return 'whatever';
});

define('appkit/templates/foo-bar', [], function(){
ok(true, 'appkit/templates was used');
return 'whatever';
});

resolver.resolve('template:foo-bar');
});

})();

19 changes: 17 additions & 2 deletions dist/modules/ember-resolver.js
Original file line number Diff line number Diff line change
Expand Up @@ -158,8 +158,7 @@ define("ember/resolver",
}
},

podBasedModuleName: function(parsedName) {
var podPrefix = this.namespace.podModulePrefix || this.namespace.modulePrefix;
podBasedLookupWithPrefix: function(podPrefix, parsedName) {
var fullNameWithoutType = parsedName.fullNameWithoutType;

if (parsedName.type === 'template') {
Expand All @@ -169,6 +168,21 @@ define("ember/resolver",
return podPrefix + '/' + fullNameWithoutType + '/' + parsedName.type;
},

podBasedModuleName: function(parsedName) {
var podPrefix = this.namespace.podModulePrefix || this.namespace.modulePrefix;

return this.podBasedLookupWithPrefix(podPrefix, parsedName);
},

podBasedComponentsInSubdir: function(parsedName) {
var podPrefix = this.namespace.podModulePrefix || this.namespace.modulePrefix;
podPrefix = podPrefix + '/components';

if (parsedName.type === 'component' || parsedName.fullNameWithoutType.match(/^components/)) {
return this.podBasedLookupWithPrefix(podPrefix, parsedName);
}
},

mainModuleName: function(parsedName) {
// if router:main or adapter:main look for a module with just the type first
var tmpModuleName = this.prefix(parsedName) + '/' + parsedName.type;
Expand Down Expand Up @@ -204,6 +218,7 @@ define("ember/resolver",
moduleNameLookupPatterns: Ember.computed(function(){
return Ember.A([
this.podBasedModuleName,
this.podBasedComponentsInSubdir,
this.mainModuleName,
this.defaultModuleName
]);
Expand Down
19 changes: 17 additions & 2 deletions packages/ember-resolver/lib/core.js
Original file line number Diff line number Diff line change
Expand Up @@ -157,8 +157,7 @@ define("ember/resolver",
}
},

podBasedModuleName: function(parsedName) {
var podPrefix = this.namespace.podModulePrefix || this.namespace.modulePrefix;
podBasedLookupWithPrefix: function(podPrefix, parsedName) {
var fullNameWithoutType = parsedName.fullNameWithoutType;

if (parsedName.type === 'template') {
Expand All @@ -168,6 +167,21 @@ define("ember/resolver",
return podPrefix + '/' + fullNameWithoutType + '/' + parsedName.type;
},

podBasedModuleName: function(parsedName) {
var podPrefix = this.namespace.podModulePrefix || this.namespace.modulePrefix;

return this.podBasedLookupWithPrefix(podPrefix, parsedName);
},

podBasedComponentsInSubdir: function(parsedName) {
var podPrefix = this.namespace.podModulePrefix || this.namespace.modulePrefix;
podPrefix = podPrefix + '/components';

if (parsedName.type === 'component' || parsedName.fullNameWithoutType.match(/^components/)) {
return this.podBasedLookupWithPrefix(podPrefix, parsedName);
}
},

mainModuleName: function(parsedName) {
// if router:main or adapter:main look for a module with just the type first
var tmpModuleName = this.prefix(parsedName) + '/' + parsedName.type;
Expand Down Expand Up @@ -203,6 +217,7 @@ define("ember/resolver",
moduleNameLookupPatterns: Ember.computed(function(){
return Ember.A([
this.podBasedModuleName,
this.podBasedComponentsInSubdir,
this.mainModuleName,
this.defaultModuleName
]);
Expand Down
49 changes: 49 additions & 0 deletions packages/ember-resolver/tests/core_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -313,3 +313,52 @@ test("will lookup a components template without being rooted in `components/`",

resolver.resolve('template:components/foo-bar');
});

test("will use pods format to lookup components in components/", function() {
expect(2);

define('appkit/components/foo-bar/template', [], function(){
ok(true, 'appkit/components was used');
return 'whatever';
});

define('appkit/components/foo-bar/component', [], function(){
ok(true, 'appkit/components was used');
return 'whatever';
});

resolver.resolve('template:components/foo-bar');
resolver.resolve('component:foo-bar');
});

test("will not lookup routes in components/", function() {
expect(1);

define('appkit/components/foo-bar/route', [], function(){
ok(false, 'appkit/components was used');
return 'whatever';
});

define('appkit/routes/foo-bar', [], function(){
ok(true, 'appkit/routes was used');
return 'whatever';
});

resolver.resolve('route:foo-bar');
});

test("will not lookup non component templates in components/", function() {
expect(1);

define('appkit/components/foo-bar/template', [], function(){
ok(false, 'appkit/components was used');
return 'whatever';
});

define('appkit/templates/foo-bar', [], function(){
ok(true, 'appkit/templates was used');
return 'whatever';
});

resolver.resolve('template:foo-bar');
});

0 comments on commit 42f539c

Please sign in to comment.