From ccbf79e813dc374c9a01ca26ff5526ff1ac5e665 Mon Sep 17 00:00:00 2001 From: Mike Brocchi Date: Mon, 29 Feb 2016 22:12:29 -0500 Subject: [PATCH] fix(paths): allow specifying paths to a component when generating When generating a component allow to specify the path the where the component will go `ng generate component foo/bar/person` will create the component (and all associated files) in the directory `[project-root]/src/app/foo/bar/person/` --- .../__name__/__name__.spec.ts | 0 addon/ng2/blueprints/component-test/index.js | 17 ++-------- .../__name__/__name__.css | 0 .../__name__/__name__.html | 0 .../__name__/__name__.ts | 0 addon/ng2/blueprints/component/index.js | 31 +++++++++++++------ 6 files changed, 23 insertions(+), 25 deletions(-) rename addon/ng2/blueprints/component-test/files/src/app/{components => __path__}/__name__/__name__.spec.ts (100%) rename addon/ng2/blueprints/component/files/src/app/{components => __path__}/__name__/__name__.css (100%) rename addon/ng2/blueprints/component/files/src/app/{components => __path__}/__name__/__name__.html (100%) rename addon/ng2/blueprints/component/files/src/app/{components => __path__}/__name__/__name__.ts (100%) diff --git a/addon/ng2/blueprints/component-test/files/src/app/components/__name__/__name__.spec.ts b/addon/ng2/blueprints/component-test/files/src/app/__path__/__name__/__name__.spec.ts similarity index 100% rename from addon/ng2/blueprints/component-test/files/src/app/components/__name__/__name__.spec.ts rename to addon/ng2/blueprints/component-test/files/src/app/__path__/__name__/__name__.spec.ts diff --git a/addon/ng2/blueprints/component-test/index.js b/addon/ng2/blueprints/component-test/index.js index 8540d5f2f309..384ca8910e60 100644 --- a/addon/ng2/blueprints/component-test/index.js +++ b/addon/ng2/blueprints/component-test/index.js @@ -1,16 +1,3 @@ -var stringUtils = require('ember-cli/lib/utilities/string'); +var component = require('../component'); -module.exports = { - description: '' - - //locals: function(options) { - // // Return custom template variables here. - // return { - // - // }; - //} - - // afterInstall: function(options) { - // // Perform extra work here. - // } -}; +module.exports = component; diff --git a/addon/ng2/blueprints/component/files/src/app/components/__name__/__name__.css b/addon/ng2/blueprints/component/files/src/app/__path__/__name__/__name__.css similarity index 100% rename from addon/ng2/blueprints/component/files/src/app/components/__name__/__name__.css rename to addon/ng2/blueprints/component/files/src/app/__path__/__name__/__name__.css diff --git a/addon/ng2/blueprints/component/files/src/app/components/__name__/__name__.html b/addon/ng2/blueprints/component/files/src/app/__path__/__name__/__name__.html similarity index 100% rename from addon/ng2/blueprints/component/files/src/app/components/__name__/__name__.html rename to addon/ng2/blueprints/component/files/src/app/__path__/__name__/__name__.html diff --git a/addon/ng2/blueprints/component/files/src/app/components/__name__/__name__.ts b/addon/ng2/blueprints/component/files/src/app/__path__/__name__/__name__.ts similarity index 100% rename from addon/ng2/blueprints/component/files/src/app/components/__name__/__name__.ts rename to addon/ng2/blueprints/component/files/src/app/__path__/__name__/__name__.ts diff --git a/addon/ng2/blueprints/component/index.js b/addon/ng2/blueprints/component/index.js index 8540d5f2f309..1d6122b5986d 100644 --- a/addon/ng2/blueprints/component/index.js +++ b/addon/ng2/blueprints/component/index.js @@ -1,16 +1,27 @@ var stringUtils = require('ember-cli/lib/utilities/string'); +var path = require('path'); module.exports = { - description: '' + description: '', - //locals: function(options) { - // // Return custom template variables here. - // return { - // - // }; - //} + locals: function(options) { + var parsedPath = path.parse(options.entity.name); + // build the locals for generating the name & path + return { + name: parsedPath.name, + path: parsedPath.dir + }; + }, - // afterInstall: function(options) { - // // Perform extra work here. - // } + fileMapTokens: function(options) { + // Return custom template variables here. + return { + __name__: function(options) { + return options.locals.name; + }, + __path__: function(options) { + return options.locals.path || 'components'; + } + }; + } };