method
manifest
v2.0.3 -
Show latest stable
- Class:
AppGenerator
manifest()public
No documentation available.
# File railties/lib/rails_generator/generators/applications/app/app_generator.rb, line 24
def manifest
# Use /usr/bin/env if no special shebang was specified
script_options = { :chmod => 0755, :shebang => options[:shebang] == DEFAULT_SHEBANG ? nil : options[:shebang] }
dispatcher_options = { :chmod => 0755, :shebang => options[:shebang] }
# duplicate CGI::Session#generate_unique_id
md5 = Digest::MD5.new
now = Time.now
md5 << now.to_s
md5 << String(now.usec)
md5 << String(rand(0))
md5 << String($$)
md5 << @app_name
# Do our best to generate a secure secret key for CookieStore
secret = Rails::SecretKeyGenerator.new(@app_name).generate_secret
record do |m|
# Root directory and all subdirectories.
m.directory ''
BASEDIRS.each { |path| m.directory path }
# Root
m.file "fresh_rakefile", "Rakefile"
m.file "README", "README"
# Application
m.template "helpers/application.rb", "app/controllers/application.rb", :assigns => { :app_name => @app_name, :app_secret => md5.hexdigest }
m.template "helpers/application_helper.rb", "app/helpers/application_helper.rb"
m.template "helpers/test_helper.rb", "test/test_helper.rb"
# database.yml and .htaccess
m.template "configs/databases/#{options[:db]}.yml", "config/database.yml", :assigns => {
:app_name => @app_name,
:socket => options[:db] == "mysql" ? mysql_socket_location : nil
}
m.template "configs/routes.rb", "config/routes.rb"
m.template "configs/apache.conf", "public/.htaccess"
# Initializers
m.template "configs/initializers/inflections.rb", "config/initializers/inflections.rb"
m.template "configs/initializers/mime_types.rb", "config/initializers/mime_types.rb"
# Environments
m.file "environments/boot.rb", "config/boot.rb"
m.template "environments/environment.rb", "config/environment.rb", :assigns => { :freeze => options[:freeze], :app_name => @app_name, :app_secret => secret }
m.file "environments/production.rb", "config/environments/production.rb"
m.file "environments/development.rb", "config/environments/development.rb"
m.file "environments/test.rb", "config/environments/test.rb"
# Scripts
%w( about console destroy generate performance/benchmarker performance/profiler performance/request process/reaper process/spawner process/inspector runner server plugin ).each do |file|
m.file "bin/#{file}", "script/#{file}", script_options
end
# Dispatches
m.file "dispatches/dispatch.rb", "public/dispatch.rb", dispatcher_options
m.file "dispatches/dispatch.rb", "public/dispatch.cgi", dispatcher_options
m.file "dispatches/dispatch.fcgi", "public/dispatch.fcgi", dispatcher_options
# HTML files
%w(404 422 500 index).each do |file|
m.template "html/#{file}.html", "public/#{file}.html"
end
m.template "html/favicon.ico", "public/favicon.ico"
m.template "html/robots.txt", "public/robots.txt"
m.file "html/images/rails.png", "public/images/rails.png"
# Javascripts
m.file "html/javascripts/prototype.js", "public/javascripts/prototype.js"
m.file "html/javascripts/effects.js", "public/javascripts/effects.js"
m.file "html/javascripts/dragdrop.js", "public/javascripts/dragdrop.js"
m.file "html/javascripts/controls.js", "public/javascripts/controls.js"
m.file "html/javascripts/application.js", "public/javascripts/application.js"
# Docs
m.file "doc/README_FOR_APP", "doc/README_FOR_APP"
# Logs
%w(server production development test).each { |file|
m.file "configs/empty.log", "log/#{file}.log", :chmod => 0666
}
end
end