From 7f00adbf3bd6be54e74a053dc0844dfcd4e7268f Mon Sep 17 00:00:00 2001 From: Wtower Date: Sun, 25 Dec 2016 12:41:03 +0200 Subject: [PATCH] Fix #3: Storing configuration to disk --- README.md | 1 + generators/app/index.js | 22 ++++++++++++++++------ package.json | 2 +- test/app.js | 3 ++- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index b66d66a..8fdd5ed 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,7 @@ The generator creates a new project with: and main urls routes. - An additional 'core' python package for specifying application information, use signals and template tags. - Default media, private and templates directories. +- A `.yo-rc.json` local yeoman configuration file with the options used to generate the project. Prompts ------- diff --git a/generators/app/index.js b/generators/app/index.js index 67cc3db..e7a3f8f 100644 --- a/generators/app/index.js +++ b/generators/app/index.js @@ -20,7 +20,7 @@ module.exports = yeoman.Base.extend({ name: 'name', message: 'Project name', default: function () { - return lodash.snakeCase(self.appname); + return self.config.get('name') || lodash.snakeCase(self.appname); } }, { // _name__core/ apps.py, tests.py @@ -28,7 +28,7 @@ module.exports = yeoman.Base.extend({ name: 'pascalName', message: 'Pascal name', default: function (response) { - return lodash.upperFirst(lodash.camelCase(response.name)); + return self.config.get('pascalName') || lodash.upperFirst(lodash.camelCase(response.name)); } }, { // _name_/settings.py, _name__core/apps.py @@ -36,7 +36,7 @@ module.exports = yeoman.Base.extend({ name: 'verboseName', message: 'Verbose name', default: function (response) { - return lodash.startCase(response.name); + return self.config.get('verboseName') || lodash.startCase(response.name); } }, { // README.md, package.json, _name_/settings.py @@ -44,13 +44,14 @@ module.exports = yeoman.Base.extend({ name: 'description', message: 'Description', default: function (response) { - return lodash.startCase(response.name); + return self.config.get('description') || lodash.startCase(response.name); } }, { // package.json type: 'input', name: 'git', - message: 'Git repository URL' + message: 'Git repository URL', + default: self.config.get('git') }, { // package.json, LICENSE, CONTRIBUTING.md type: 'input', @@ -69,7 +70,7 @@ module.exports = yeoman.Base.extend({ name: 'allowedHost', message: 'Allowed host', default: function (response) { - return response.name + '.com'; + return self.config.get('allowedHost') || response.name + '.com'; } }, { // newrelic.ini @@ -84,6 +85,15 @@ module.exports = yeoman.Base.extend({ }.bind(this)); }, + saveConfig: function () { + this.config.set('name', this.props.name); + this.config.set('pascalName', this.props.pascalName); + this.config.set('verboseName', this.props.verboseName); + this.config.set('description', this.props.description); + this.config.set('git', this.props.git); + this.config.set('allowedHost', this.props.allowedHost); + }, + writing: function () { var templatePaths = [ '_name_/', diff --git a/package.json b/package.json index 4f08a20..6371d07 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "generator-django-ana", - "version": "0.1.1", + "version": "0.1.3", "description": "Generate Django boilerplate. Featuring REST, gulp build and ng-gentelella.", "homepage": "https://github.com/Wtower/generator-django-ana.git", "author": { diff --git a/test/app.js b/test/app.js index 8110b40..91b715e 100644 --- a/test/app.js +++ b/test/app.js @@ -35,7 +35,8 @@ describe('generator-django-ana:app', function () { 'manage.py', 'newrelic.ini', 'package.json', - 'README.md' + 'README.md', + '.yo-rc.json' ]; var copyPaths = [ 'media/',