class Rails::AppBuilder

def app

def app
  directory 'app'
end

def config

def config
  empty_directory "config"
  inside "config" do
    template "routes.rb"
    template "application.rb"
    template "environment.rb"
    directory "environments"
    directory "initializers"
    directory "locales"
  end
end

def configru

def configru
  template "config.ru"
end

def database_yml

def database_yml
  template "config/databases/#{@options[:database]}.yml", "config/database.yml"
end

def db

def db
  directory "db"
end

def doc

def doc
  directory "doc"
end

def gemfile

def gemfile
  template "Gemfile"
end

def gitignore

def gitignore
  copy_file "gitignore", ".gitignore"
end

def images

def images
  directory "public/images"
end

def javascripts

def javascripts
  unless options[:skip_prototype]
    directory "public/javascripts"
  else
    empty_directory_with_gitkeep "public/javascripts"
    create_file "public/javascripts/application.js"
  end
end

def lib

def lib
  empty_directory "lib"
  empty_directory_with_gitkeep "lib/tasks"
end

def log

def log
  empty_directory "log"
  inside "log" do
    %w( server production development test ).each do |file|
      create_file "#{file}.log"
      chmod "#{file}.log", 0666, :verbose => false
    end
  end
end

def public_directory

def public_directory
  directory "public", "public", :recursive => false
end

def rakefile

def rakefile
  template "Rakefile"
end

def readme

def readme
  copy_file "README"
end

def script

def script
  directory "script" do |content|
    "#{shebang}\n" + content
  end
  chmod "script", 0755, :verbose => false
end

def stylesheets

def stylesheets
  empty_directory_with_gitkeep "public/stylesheets"
end

def test

def test
  directory "test"
end

def tmp

def tmp
  empty_directory "tmp"
  inside "tmp" do
    %w(sessions sockets cache pids).each do |dir|
      empty_directory(dir)
    end
  end
end

def vendor_plugins

def vendor_plugins
  empty_directory_with_gitkeep "vendor/plugins"
end