-
Notifications
You must be signed in to change notification settings - Fork 368
Expand file tree
/
Copy pathscaffold
More file actions
74 lines (61 loc) · 2.14 KB
/
scaffold
File metadata and controls
74 lines (61 loc) · 2.14 KB
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
65
66
67
68
69
70
71
72
73
74
if (_args.length < 1) {
print("USAGE : steal/js steal/generate/scaffold FullName Type")
print("TYPES : JsonRest\n")
print("EX : js steal/generate/scaffold Cashnet.Models.Customer");
print(" > cashnet/models/customer.js ....")
print();
quit();
}
load('steal/rhino/rhino.js');
steal( 'steal/generate',
'steal/generate/system.js',
'jquery/generate/templates/model.js',
function(steal){
//check capitalization
steal.generate.model(_args[0]);
var parts = _args[0].split("."), part;
for(var i=0; i< parts.length;i++){
part = parts[i];
if( part[0] !== part[0].toUpperCase() ){
print("! Warning: "+part+" should probably be capitalized. JavaScriptMVC likes capital namespaces and class names.")
}
parts[i] = steal.generate.underscore(part);
}
// check folders
var folder = parts.slice(0, parts.length-1).join("/");
if(!folder){
print("! Error: Scaffolding needs to be part of an app");
quit();
}
if(!steal.File(folder).exists()){
print("! Error: folder "+folder+" does not exist!");
quit();
}
//check pluralization of last part
if(steal.Inflector.singularize(part) !== part){
print("! Warning: Model names should be singular. I don't think "+part+
" is singular!")
}
var md = steal.generate.convert(_args[0]);
md.type = _args[1]
md.appPath = md.path.replace(/\/models$/,"");
md.baseName = md.name.replace(/\.Models.*/, "."+md.className);
steal.generate("jquery/generate/templates/scaffold",md.appPath+"/"+md.underscore,md);
steal.generate.insertSteal(
md.appPath+"/test/funcunit/funcunit.js",
md.appPath+"/"+md.underscore+"/create/create_test.js");
steal.generate.insertSteal(
md.appPath+"/test/funcunit/funcunit.js",
md.appPath+"/"+md.underscore+"/list/list_test.js")
steal.generate.insertSteal(
md.appPath+"/"+md.appPath+".js",
md.appPath+"/"+md.underscore+"/create", true)
steal.generate.insertSteal(
md.appPath+"/"+md.appPath+".js",
md.appPath+"/"+md.underscore+"/list", true)
var text = readFile("jquery/generate/templates/scaffoldHookup.ejs");
var hookup = new steal.EJS({
text: text
}).render(md);
steal.generate.insertCode(md.appPath+"/"+md.appPath+".js", hookup );
});