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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
# File 'lib/dynamics.rb', line 4
def self.create_scaffold(name, path)
if File.exists?(name)
puts "Error, #{name} already exists!"
else
Dir.mkdir(name)
app_dir = File.join(name, 'app')
build_dir = File.join(name, 'build')
resources_dir = File.join(name, 'resources')
lib_dir = File.join(name, 'lib')
dynamics_dir = File.join(lib_dir, 'dynamics')
Dir.mkdir(app_dir)
Dir.mkdir(build_dir)
Dir.mkdir(resources_dir)
Dir.mkdir(lib_dir)
Dir.mkdir(dynamics_dir)
base_dir = File.join(path, '..', 'base')
f = File.new(File.join(name, 'Rakefile'), 'w+')
code = render_code(File.join(base_dir, 'Rakefile'))
code.gsub!("app.name = ''", "app.name = '#{name}'")
code.gsub!("app.delegate_class = ''", "app.delegate_class = '#{name}'")
f.write(code)
f.close
f = File.new(File.join(app_dir, 'application.rb'), 'w+')
code = render_code(File.join(base_dir, 'app', 'application.rb'))
code.gsub!("class Application", "class #{name}")
f.write(code)
f.close
controllers_dir = File.join(app_dir, 'controllers')
Dir.mkdir(controllers_dir)
base_controllers_dir = File.join(base_dir, 'app', 'controllers')
Dir.foreach(base_controllers_dir) do |controller|
if controller.include?('.rb')
f = File.new(File.join(controllers_dir, controller), 'w+')
f.write(render_code(File.join(base_controllers_dir, controller)))
f.close
end
end
forms_dir = File.join(app_dir, 'forms')
Dir.mkdir(forms_dir)
base_forms_dir = File.join(base_dir, 'app', 'forms')
Dir.foreach(base_forms_dir) do |form|
if form.include?('.rb')
f = File.new(File.join(forms_dir, form), 'w+')
f.write(render_code(File.join(base_forms_dir, form)))
f.close
end
end
views_dir = File.join(app_dir, 'views')
Dir.mkdir(views_dir)
base_views_dir = File.join(base_dir, 'app', 'views')
Dir.foreach(base_views_dir) do |view|
if view.include?('.rb')
f = File.new(File.join(views_dir, view), 'w+')
f.write(render_code(File.join(base_views_dir, view)))
f.close
end
end
base_resources_dir = File.join(base_dir, 'resources')
Dir.foreach(base_resources_dir) do |resource|
if resource.include?('.png')
f = File.new(File.join(resources_dir, resource), 'w+')
f.write(render_code(File.join(base_resources_dir, resource)))
f.close
end
end
end
end
|