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
|
# File 'lib/generators/soapbox_scaffold/soapbox_scaffold_generator.rb', line 9
def manifest
directories = [
"app",
"app/controllers",
"app/controllers/admin",
"app/views",
"app/views/admin",
"app/models",
"app/helpers",
"config",
"db",
"db/migrate"
]
directories.each do |dir|
empty_directory dir
end
template "admin_controller.rb", "app/controllers/admin/#{plural_name}_controller.rb"
template "controller.rb", "app/controllers/#{plural_name}_controller.rb"
template "model.rb", "app/models/#{singular_name}.rb"
migration_name = "#{Time.new.utc.strftime("%Y%m%d%H%M%S")}_create_#{singular_name.pluralize}.rb"
template 'migration.rb', "db/migrate/#{migration_name}"
admin_view_dir = File.join("app/views/admin", plural_name)
empty_directory admin_view_dir
admin_view_files = ['form.html.erb', 'index.html.erb' ]
admin_view_files.each do |view_file|
template "views/admin/#{view_file}", "#{admin_view_dir}/#{view_file}"
end
view_dir = File.join("app/views", plural_name)
empty_directory view_dir
view_files = ['show.html.erb', 'index.html.erb' ]
view_files.each do |view_file|
template "views/#{view_file}", "#{view_dir}/#{view_file}"
end
look_for = "# Resources"
gsub_file('config/routes.rb', /(#{Regexp.escape(look_for)})/mi){|match| "#{match}\n resources :#{plural_name}, :only => [:index, :show]"}
look_for = "# Admin Resources"
gsub_file('config/routes.rb', /(#{Regexp.escape(look_for)})/mi){|match| "#{match}\n resources :#{plural_name}"}
puts "IMPORTANT"
puts "---------------------------------------"
puts "Now run 'rake db:migrate' to add the table to the DB"
puts "---------------------------------------"
end
|