-
Notifications
You must be signed in to change notification settings - Fork 35
/
Copy pathindex.js
64 lines (54 loc) · 1.84 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
'use strict';
var util = require('util');
var yeoman = require('yeoman-generator');
var mkdirp = require('mkdirp');
var RestGenerator = module.exports = function RestGenerator(args, options, config) {
yeoman.generators.Base.apply(this, arguments);
};
util.inherits(RestGenerator, yeoman.generators.Base);
RestGenerator.prototype.askFor = function askFor() {
var cb = this.async();
var prompts = [
{
type: 'string',
name: 'packageName',
message: '(1/4) Package name:',
default: this.config.get('packageName')
},
{
type: 'string',
name: 'viewName',
message: '(2/4) Name for your view:',
default: 'page'
},
{
type: 'string',
name: 'controllerName',
message: '(3/4) Name for your controller:',
default: 'MyController'
},
{
type: 'string',
name: 'controllerPath',
message: '(4/4) Path to Controller:',
default: '/hello-world'
}
]
this.prompt(prompts, function (props) {
this.packageName = props.packageName;
this.viewName = props.viewName;
this.controllerName = props.controllerName;
this.controllerPath = props.controllerPath;
cb();
}.bind(this));
};
RestGenerator.prototype.files = function app() {
var packageFolder = this.packageName.replace(/\./g, '/');
var controllersDir = 'src/main/java/' + packageFolder + '/controller';
var viewsDir = 'src/main/resources/templates';
mkdirp(controllersDir);
mkdirp(viewsDir);
this.template('Controller.java', controllersDir + '/' + this.controllerName + '.java');
this.template('view.html', viewsDir + '/' + this.viewName + '.html');
this.config.set('packageName', this.packageName);
};