Skip to content

Commit

Permalink
Add blueprint descriptions to ember help generate
Browse files Browse the repository at this point in the history
Also display '(overridden)' next to overridden blueprints.

Addresses #1237
Addresses #1274

Pass options through printBasicHelp & printDetailedHelp

Hide overridden blueprints unless verbose flag is set

Add example descriptions to built-in blueprints

Add availableOptions to Blueprint
  • Loading branch information
jgwhite committed Sep 16, 2014
1 parent b082219 commit 8804eec
Show file tree
Hide file tree
Showing 44 changed files with 369 additions and 167 deletions.
7 changes: 3 additions & 4 deletions blueprints/acceptance-test/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
var Blueprint = require('../../lib/models/blueprint');

module.exports = Blueprint.extend({
});
module.exports = {
description: 'Generates an acceptance test for a feature.'
};
3 changes: 3 additions & 0 deletions blueprints/adapter-test/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
description: 'Generates an ember-data adapter unit test'
};
11 changes: 8 additions & 3 deletions blueprints/adapter/index.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
var fs = require('fs');
var path = require('path');
var stringUtil = require('../../lib/utilities/string');
var Blueprint = require('../../lib/models/blueprint');

module.exports = Blueprint.extend({
module.exports = {
description: 'Generates an ember-data adapter.',

availableOptions: [
{ name: 'base-class', type: String, default: 'application' }
],

locals: function(options) {
var baseClass = 'DS.RESTAdapter';
var importStatement = 'import DS from \'ember-data\';';
Expand All @@ -27,4 +32,4 @@ module.exports = Blueprint.extend({
baseClass: baseClass
};
}
});
};
4 changes: 4 additions & 0 deletions blueprints/addon/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ var assign = require('lodash-node/modern/objects/assign');
var uniq = require('lodash-node/underscore/arrays/uniq');

module.exports = Blueprint.extend({
description: 'The default blueprint for ember-cli addons.',

afterInstall: function(options) {
if (options.dryRun) { return; }

Expand Down Expand Up @@ -47,6 +49,7 @@ module.exports = Blueprint.extend({
emberCLIVersion: require('../../package').version
}
},

files: function() {
if (this._files) { return this._files; }

Expand Down Expand Up @@ -80,6 +83,7 @@ module.exports = Blueprint.extend({

return path;
},

srcPath: function(file) {
var filePath = path.resolve(this.path, 'files', file);
if (fs.existsSync(filePath)) {
Expand Down
7 changes: 4 additions & 3 deletions blueprints/app/index.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
var Blueprint = require('../../lib/models/blueprint');
var stringUtil = require('../../lib/utilities/string');

module.exports = Blueprint.extend({
module.exports = {
description: 'The default blueprint for ember-cli projects.',

locals: function(options) {
var entity = options.entity;
var rawName = entity.name;
Expand All @@ -15,4 +16,4 @@ module.exports = Blueprint.extend({
emberCLIVersion: require('../../package').version
}
}
});
};
7 changes: 3 additions & 4 deletions blueprints/blueprint/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
var Blueprint = require('../../lib/models/blueprint');

module.exports = Blueprint.extend({
});
module.exports = {
description: 'Generates a blueprint and defintion.'
};
3 changes: 3 additions & 0 deletions blueprints/component-test/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
description: 'Generates a component unit test.'
};
6 changes: 4 additions & 2 deletions blueprints/component/index.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
var Blueprint = require('../../lib/models/blueprint');
var SilentError = require('../../lib/errors/silent');

module.exports = Blueprint.extend({
module.exports = {
description: 'Generates a component. Name must contain a hyphen.',

normalizeEntityName: function(entityName) {
entityName = Blueprint.prototype.normalizeEntityName.apply(this, arguments);

Expand All @@ -19,4 +21,4 @@ module.exports = Blueprint.extend({

return entityName;
}
});
};
3 changes: 3 additions & 0 deletions blueprints/controller-test/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
description: 'Generates a controller unit test.'
};
11 changes: 8 additions & 3 deletions blueprints/controller/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
var Blueprint = require('../../lib/models/blueprint');
var SilentError = require('../../lib/errors/silent');
var chalk = require('chalk');

Expand All @@ -8,7 +7,13 @@ var TYPE_MAP = {
basic: 'Controller'
};

module.exports = Blueprint.extend({
module.exports = {
description: 'Generates a controller of the given type.',

availableOptions: [
{ name: 'type', values: ['generic', 'object', 'array'], default: 'generic' }
],

beforeInstall: function(options) {
var type = options.type;

Expand All @@ -31,4 +36,4 @@ module.exports = Blueprint.extend({
baseClass: baseClass
};
}
});
};
3 changes: 3 additions & 0 deletions blueprints/helper-test/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
description: 'Generates a helper unit test.'
};
7 changes: 3 additions & 4 deletions blueprints/helper/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
var Blueprint = require('../../lib/models/blueprint');

module.exports = Blueprint.extend({
});
module.exports = {
description: 'Generates a helper function.'
};
12 changes: 9 additions & 3 deletions blueprints/http-mock/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
var Blueprint = require('../../lib/models/blueprint');
var EOL = require('os').EOL;

module.exports = {
description: 'Generates a mock api endpoint in /api prefix.',

anonymousOptions: [
'endpoint-path'
],

module.exports = Blueprint.extend({
locals: function(options) {
return {
path: '/' + options.entity.name.replace(/^\//, '')
Expand All @@ -9,4 +15,4 @@ module.exports = Blueprint.extend({
afterInstall: function() {
return this.addPackageToProject('connect-restreamer', '^1.0.0');
}
});
};
12 changes: 9 additions & 3 deletions blueprints/http-proxy/index.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
var Blueprint = require('../../lib/models/blueprint');
var Promise = require('../../lib/ext/promise');

module.exports = Blueprint.extend({
module.exports = {
description: 'Generates a relative proxy to another server.',

anonymousOptions: [
'local-path',
'remote-url'
],

locals: function(options) {
var proxyUrl = options.args[2];
return {
Expand All @@ -16,4 +22,4 @@ module.exports = Blueprint.extend({
this.addPackageToProject('connect-restreamer', '^1.0.0')
]);
}
});
};
3 changes: 3 additions & 0 deletions blueprints/initializer-test/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
description: 'Generates an initialiser unit test.'
};
7 changes: 3 additions & 4 deletions blueprints/initializer/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
var Blueprint = require('../../lib/models/blueprint');

module.exports = Blueprint.extend({
});
module.exports = {
description: 'Generates an initializer.'
};
3 changes: 3 additions & 0 deletions blueprints/mixin-test/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
description: 'Generates a mixin unit test.'
};
7 changes: 3 additions & 4 deletions blueprints/mixin/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
var Blueprint = require('../../lib/models/blueprint');

module.exports = Blueprint.extend({
});
module.exports = {
description: 'Generates a mixin.'
};
3 changes: 3 additions & 0 deletions blueprints/model-test/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
description: 'Generates a model unit test.'
};
12 changes: 9 additions & 3 deletions blueprints/model/index.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
var Blueprint = require('../../lib/models/blueprint');
var inflection = require('inflection');
var stringUtils = require('../../lib/utilities/string');
var EOL = require('os').EOL;

module.exports = Blueprint.extend({
module.exports = {
description: 'Generates an ember-data model.',

anonymousOptions: [
'name',
'attr:type'
],

locals: function(options) {
var attrs = [];
var needs = [];
Expand Down Expand Up @@ -36,7 +42,7 @@ module.exports = Blueprint.extend({
needs: needs
};
}
});
};

function dsAttr(name, type) {
switch (type) {
Expand Down
7 changes: 5 additions & 2 deletions blueprints/resource/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ var Promise = require('../../lib/ext/promise');
var merge = require('lodash-node/compat/objects/merge');
var inflection = require('inflection');

module.exports = Blueprint.extend({
module.exports = {
description: 'Generates a model and route.',

install: function(options) {
return this._process('install', options);
},
Expand Down Expand Up @@ -49,11 +51,12 @@ module.exports = Blueprint.extend({
name: inflection.singularize(options.entity.name)
}
});

var routeOptions = merge({}, options, { type: 'resource' });

return Promise.all([
this._processBlueprint(type, 'model', modelOptions),
this._processBlueprint(type, 'route', routeOptions)
]);
}
});
};
3 changes: 3 additions & 0 deletions blueprints/route-test/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
description: 'Generates a route unit test.'
};
11 changes: 8 additions & 3 deletions blueprints/route/index.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
var Blueprint = require('../../lib/models/blueprint');
var SilentError = require('../../lib/errors/silent');
var fs = require('fs-extra');
var inflection = require('inflection');
var path = require('path');
var EOL = require('os').EOL;

module.exports = Blueprint.extend({
module.exports = {
description: 'Generates a route and registers it with the router.',

availableOptions: [
{ name: 'type', values: ['route', 'resource'], default: 'route' }
],

beforeInstall: function(options) {
var type = options.type;

Expand Down Expand Up @@ -49,7 +54,7 @@ module.exports = Blueprint.extend({
});
}
}
});
};

function removeRouteFromRouter(name, options) {
var type = options.type || 'route';
Expand Down
3 changes: 3 additions & 0 deletions blueprints/serializer-test/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
description: 'Generates a serializer unit test.'
};
7 changes: 3 additions & 4 deletions blueprints/serializer/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
var Blueprint = require('../../lib/models/blueprint');

module.exports = Blueprint.extend({
});
module.exports = {
description: 'Generates an ember-data serializer.'
};
3 changes: 3 additions & 0 deletions blueprints/service-test/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
description: 'Generates a route unit test.'
};
7 changes: 3 additions & 4 deletions blueprints/service/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
var Blueprint = require('../../lib/models/blueprint');

module.exports = Blueprint.extend({
});
module.exports = {
description: 'Generates a service and initializer for injections.'
};
7 changes: 3 additions & 4 deletions blueprints/template/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
var Blueprint = require('../../lib/models/blueprint');

module.exports = Blueprint.extend({
});
module.exports = {
description: 'Generates a template.'
};
3 changes: 3 additions & 0 deletions blueprints/transform-test/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
description: 'Generates a transform unit test.'
};
7 changes: 3 additions & 4 deletions blueprints/transform/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
var Blueprint = require('../../lib/models/blueprint');

module.exports = Blueprint.extend({
});
module.exports = {
description: 'Generates an ember-data value transform.'
};
3 changes: 3 additions & 0 deletions blueprints/util-test/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
description: 'Generates a util unit test.'
};
7 changes: 3 additions & 4 deletions blueprints/util/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
var Blueprint = require('../../lib/models/blueprint');

module.exports = Blueprint.extend({
});
module.exports = {
description: 'Generates a simple utility module/function.'
};
3 changes: 3 additions & 0 deletions blueprints/view-test/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
description: 'Generates a view unit test.'
};
7 changes: 3 additions & 4 deletions blueprints/view/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
var Blueprint = require('../../lib/models/blueprint');

module.exports = Blueprint.extend({
});
module.exports = {
description: 'Generates a view subclass.'
};
Loading

0 comments on commit 8804eec

Please sign in to comment.