Added Canvas 1.1.0, originally not under SCM so no historical development records...
[canvas.git] / scripts / generator / actions.rb
blob5639de9d526ee889f9e64c308d69913635bc1e29
1 class Generator
2   # generate controller
3   def generate_controller
4     # template properties
5     @controller_name = @args.shift
6     @actions = @args
7     @title = 'Controller'
8     @desc = 'Describe functionality here...'
9     @author = `whoami`.sub("\n", '')
10     
11     # filename to write to
12     file = 'controllers/' + @controller_name + '_controller.php'
13     
14     # generate and write template
15     generate 'controller', file
16     
17     # tell user that it was created
18     print "Controller created (in " + file + ")"
19   end
20   
21   # generate model
22   def generate_model
23     # template properties
24     @model_name = @args.shift
25     @title = 'Model'
26     @desc = 'Describe functionality here...'
27     @author = `whoami`.sub("\n", '')
28     
29     # filename to write to
30     file = 'models/' + @model_name + '.php'
31     
32     # generate and write template
33     generate 'model', file
34     
35     # tell user that it was created
36     print "Model created (in " + file + ")"
37   end
38   
39   # generate view
40   def generate_view
41     # template properties
42     @view_name = @args.shift
43     @actions = @args
44     
45     files = []
46     # filenames to write to
47     @actions.each do |action|
48       files[files.length] = 'views/' + @view_name + '/' + action + '.php'
49     end
50     
51     # create views directory if it does not exist
52     Dir.mkdir('views/' + @view_name) if (!(File.exists? 'views/' + @view_name) and !(File.directory? 'views/' + @view_name))
53     
54     # generate and write template
55     generate 'view_layout', 'views/' + @view_name + '/layout.php'
56     generate 'view', files
57     
58     # create 'compile', 'cache', and 'config' smarty directories
59     dirs = ['compile', 'config', 'cache']
60     dirs.each do |dir|
61       dir = 'views/' + @view_name + '/' + dir
62       Dir.mkdir(dir) if (!(File.exists? dir) and !(File.directory? dir))
63     end
64     # fix permissions
65     `chmod -v a+rwx views/*/compile views/*/config views/*/cache`
66     
67     # tell user that it was created
68     print "Views created (in " + File.dirname(files[0]) + ")"
69   end
70 end