Skip to content

Commit

Permalink
updated generators to use new fs.writeGenerator
Browse files Browse the repository at this point in the history
  • Loading branch information
ryanflorence committed May 31, 2013
1 parent 04eb3d1 commit 84beacd
Show file tree
Hide file tree
Showing 18 changed files with 48 additions and 36 deletions.
11 changes: 8 additions & 3 deletions src/commands/create.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,13 @@ create.getPaths = function(appPath, env) {
env = appPath;
appPath = '.';
}
var jsPath = appPath + '/' + (env.jsPath || 'js');
return { app: appPath, js: jsPath };
var jsRelative = env.jsPath || 'js';
var jsPath = appPath+'/'+jsRelative;
return {
app: appPath,
js: jsPath,
jsRelative: jsRelative
};
};

function mkdirs(paths) {
Expand All @@ -34,7 +39,7 @@ function mkdirs(paths) {
}

function writeConfigFile(paths) {
var locals = { modules: 'common-js', jsPath: paths.js };
var locals = { modules: 'cjs', jsPath: paths.jsRelative };
fs.writeTemplate('create', 'ember.json', locals, paths.app+'/ember.json');
}

Expand Down
4 changes: 2 additions & 2 deletions src/commands/generate.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
var generators = require('../generators/index');
var message = require('../util/message');
var msg = require('../util/message');
var parseGeneratorCommand = require('../util/parseGeneratorCommand');

module.exports = function() {
var env = parseGeneratorCommand([].slice.call(arguments, 0));
if (!env.resourceName) {
message.notify("ember: Please provide a resource name. See 'ember generate --help'");
msg.notify("Please provide a resource name. See 'ember generate --help'");
} else {
for (var generator in generators) {
if (env[generator]) {
Expand Down
6 changes: 3 additions & 3 deletions src/generators/controller.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
var template = require('../util/template');
var fs = require('../util/fs');
var inflector = require('../util/inflector');

module.exports = function(resource) {
var resourceName = inflector.underscore(resource) + '_controller';
return template.generate('controller', resourceName, {
var resourceName = inflector.underscore(resource)+'_controller';
fs.writeGenerator('controller', resourceName, {
objectName: inflector.objectify(resourceName)
});
};
Expand Down
6 changes: 3 additions & 3 deletions src/generators/helper.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
var template = require('../util/template');
var fs = require('../util/fs');
var inflector = require('../util/inflector');

module.exports = function(name) {
var fileName = inflector.underscore(name);
var helperName = inflector.camelize(name);
return template.generate('helper', fileName, {
fs.writeGenerator('helper', fileName, {
helperName: helperName
}, true);
});
};

6 changes: 3 additions & 3 deletions src/generators/mixin.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
var template = require('../util/template');
var fs = require('../util/fs');
var inflector = require('../util/inflector');

module.exports = function(resource) {
var resourceName = inflector.underscore(inflector.singularize(resource));
return template.generate('mixin', resourceName, {
fs.writeGenerator('mixin', resourceName, {
objectName: inflector.objectify(resourceName)
}, true);
});
};

6 changes: 3 additions & 3 deletions src/generators/model.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
var template = require('../util/template');
var fs = require('../util/fs');
var inflector = require('../util/inflector');

module.exports = function(resource, env) {
var resourceName = inflector.underscore(inflector.singularize(resource));
return template.generate('model', resourceName, {
fs.writeGenerator('model', resourceName, {
fields: env.fields,
objectName: inflector.objectify(resourceName)
}, true);
});
};

4 changes: 2 additions & 2 deletions src/generators/route.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
var template = require('../util/template');
var fs = require('../util/fs');
var inflector = require('../util/inflector');

module.exports = function(resource) {
var resourceName = inflector.underscore(resource) + '_route';
return template.generate('route', resourceName, {
fs.writeGenerator('route', resourceName, {
objectName: inflector.objectify(resourceName)
});
};
Expand Down
4 changes: 2 additions & 2 deletions src/generators/template.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
var template = require('../util/template');
var fs = require('../util/fs');
var inflector = require('../util/inflector');

module.exports = function(resource) {
var resourceName = inflector.underscore(resource);
return template.generate('template', resourceName, {name: resource});
fs.writeGenerator('template', resourceName, {name: resource});
};

4 changes: 2 additions & 2 deletions src/generators/view.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
var template = require('../util/template');
var fs = require('../util/fs');
var inflector = require('../util/inflector');

module.exports = function(resource) {
var resourceName = inflector.underscore(resource) + '_view';
return template.generate('view', resourceName, {
fs.writeGenerator('view', resourceName, {
objectName: inflector.objectify(resourceName)
});
};
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
5 changes: 4 additions & 1 deletion src/util/config.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
var fs = require('fs');
var message = require('./message');
var config;

module.exports = function() {
if (config) { return config; }
if (fs.existsSync('ember.json')) {
return JSON.parse(fs.readFileSync('ember.json'));
var config = JSON.parse(fs.readFileSync('ember.json'));
return config;
} else {
message.notify("ember: could not find ember.json file at, please run `ember create [appDir]`");
return process.exit();
Expand Down
28 changes: 16 additions & 12 deletions src/util/fs.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
var fs = require('fs-extra');
var msg = require('./message');
var handlebars = require('handlebars');
var msg = require('./message');
var inflector = require('./inflector');
var config = require('./config');
var conf;

module.exports = fs;

Expand All @@ -28,18 +28,22 @@ fs.writeFileSync = function(fileName, data) {
};

fs.writeTemplate = function(command, templateName, locals, savePath) {
locals = locals || {};
savePath = savePath || getSavePath(command, templateName);
var templatePath = __dirname+'/../templates/'+command+'/'+templateName+'.hbs';
var template = fs.readFileSync(templatePath).toString();
var compiled = handlebars.compile(template);
var file = compiled(locals);
savePath = savePath || getSavePath(command, templateName);
fs.writeFileSync(savePath, file);
var src = renderTemplate(templatePath, locals);
savePath = savePath || config().jsPath+'/'+command+'/'+templateName;
fs.writeFileSync(savePath, src);
};

function getSavePath(command, templateName) {
conf = conf || config();
return conf.jsPath+'/'+command+'/'+templateName;
fs.writeGenerator = function(generatorType, resourceName, locals) {
var ext = (generatorType == 'template') ? '.hbs' : '.js';
var pluralType = inflector.pluralize(generatorType);
var savePath = config().jsPath+'/'+pluralType+'/'+resourceName+ext;
fs.writeTemplate('generate', generatorType+ext, locals, savePath);
};

function renderTemplate(templatePath, locals) {
var template = fs.readFileSync(templatePath).toString();
var compiled = handlebars.compile(template);
return compiled(locals);
}

0 comments on commit 84beacd

Please sign in to comment.