Created
May 23, 2013 00:43
-
-
Save spikebrehm/5632016 to your computer and use it in GitHub Desktop.
same script for generating views for @rendrjs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var prompt = require("prompt"), | |
fs = require('fs'), | |
pwd = process.env.PWD; | |
var args = process.argv.slice(2), | |
viewName = args.shift(), | |
uppercaseRe = /([A-Z])/g; | |
if (viewName) { | |
generateViewFiles(viewName); | |
} else { | |
prompt.start(); | |
prompt.get({ | |
properties: { | |
name: { | |
message: "What's the name of the view?" | |
} | |
} | |
}, function(err, result) { | |
generateViewFiles(result.name); | |
}); | |
} | |
function generateViewFiles(name) { | |
var underscored; | |
underscored = underscorize(name); | |
makeTemplate(name, underscored); | |
makeView(name, underscored); | |
makeStylesheet(name, underscored); | |
} | |
function makeTemplate(name, underscored) { | |
makeFile('app/templates/' + underscored + '.hbs', ''); | |
} | |
function makeView(name, underscored) { | |
makeFile('app/views/' + underscored + '.coffee', | |
"BaseView = require('./base_view')\n\n\ | |
module.exports = class " + name + " extends BaseView\n\ | |
@id = '" + name + "'\n\ | |
className: '" + underscored + "'"); | |
} | |
function makeStylesheet(name, underscored) { | |
makeFile('assets/stylesheets/views/' + underscored + '.styl', "." + underscored + " {\n\n}\n"); | |
} | |
function makeFile(path, contents) { | |
fs.writeFileSync(pwd + '/' + path, contents); | |
console.log(('+ ' + path).green); | |
} | |
function underscorize(name) { | |
name = name.replace(uppercaseRe, function(char) { return "_" + char.toLowerCase(); }); | |
if (name[0] === '_') { | |
name = name.slice(1); | |
} | |
return name; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment