Skip to content

Commit

Permalink
Make bin/rails call rails/commands/application, fix generators usage …
Browse files Browse the repository at this point in the history
…and update .gitignores.
  • Loading branch information
josevalim committed Feb 3, 2010
1 parent 391f254 commit efa8505
Show file tree
Hide file tree
Showing 8 changed files with 76 additions and 111 deletions.
5 changes: 2 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,8 @@ railties/test/fixtures/tmp
railties/test/initializer/root/log
railties/doc/guides/html/images
railties/doc/guides/html/stylesheets
benches
railties/guides/output
bin
vendor/gems/
railties/tmp
bin
.bundle
pkg
27 changes: 4 additions & 23 deletions railties/bin/rails
Original file line number Diff line number Diff line change
@@ -1,30 +1,11 @@
if File.exists?(Dir.getwd + '/script/rails')
exec(Dir.getwd + '/script/rails', *ARGV)
else
begin
require 'rails/ruby_version_check'
rescue LoadError
# If people are not using gems, the load path must still
# be correct.
# TODO: Remove the begin / rescue block somehow
$:.unshift File.expand_path('../../lib', __FILE__)
$:.unshift File.expand_path('../../../activesupport/lib', __FILE__)
$:.unshift File.expand_path('../../../actionpack/lib', __FILE__)
require 'rails/ruby_version_check'
end
railties_path = File.expand_path('../../lib', __FILE__)
$:.unshift(railties_path) if File.directory?(railties_path) && !$:.include?(railties_path)

require 'rails/ruby_version_check'
Signal.trap("INT") { puts; exit }

require 'rails/version'
if %w(--version -v).include? ARGV.first
puts "Rails #{Rails::VERSION::STRING}"
exit(0)
end

ARGV << "--help" if ARGV.empty?

require 'rails/generators'
require 'generators/rails/app/app_generator'

Rails::Generators::AppGenerator.start
require 'rails/commands/application'
end
1 change: 1 addition & 0 deletions railties/lib/generators/rails/app/templates/gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
.bundle
db/*.sqlite3
log/*.log
tmp/**/*
2 changes: 1 addition & 1 deletion railties/lib/generators/rails/app/templates/script/rails
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ APP_PATH = File.expand_path('../../config/application', __FILE__)
ROOT_PATH = File.expand_path('../..', __FILE__)

require BOOT_PATH
require 'rails/commands/rails'
require 'rails/commands'
79 changes: 66 additions & 13 deletions railties/lib/rails/commands.rb
Original file line number Diff line number Diff line change
@@ -1,17 +1,70 @@
commands = Dir["#{File.dirname(__FILE__)}/commands/*.rb"].collect { |file_path| File.basename(file_path).split(".").first }
if ARGV.empty?
ARGV << '--help'
end

if commands.include?(ARGV.first)
require "#{File.dirname(__FILE__)}/commands/#{ARGV.shift}"
else
puts <<-USAGE
The 'run' provides a unified access point for all the default Rails' commands.
Usage: ./script/run <command> [OPTIONS]
HELP_TEXT = <<-EOT
Usage: rails COMMAND [ARGS]
The most common rails commands are:
generate Generate new code (short-cut alias: "g")
console Start the Rails console (short-cut alias: "c")
server Start the Rails server (short-cut alias: "s")
dbconsole Start a console for the database specified in config/database.yml
(short-cut alias: "db")
In addition to those, there are:
application Generate the Rails application code
destroy Undo code generated with "generate"
benchmarker See how fast a piece of code runs
profiler Get profile information from a piece of code
plugin Install a plugin
runner Run a piece of code in the application environment
All commands can be run with -h for more information.
EOT

Examples:
./script/run generate controller Admin
./script/run process reaper

USAGE
puts "Choose: #{commands.join(", ")}"
case ARGV.shift
when 'g', 'generate'
require ENV_PATH
require 'rails/commands/generate'
when 'c', 'console'
require 'rails/commands/console'
require APP_PATH
Rails::Console.start(Rails::Application)
when 's', 'server'
require 'rails/commands/server'
Dir.chdir(ROOT_PATH)
Rails::Server.start
when 'db', 'dbconsole'
require 'rails/commands/dbconsole'
require APP_PATH
Rails::DBConsole.start(Rails::Application)

when 'application'
require 'rails/commands/application'
when 'destroy'
require ENV_PATH
require 'rails/commands/destroy'
when 'benchmarker'
require ENV_PATH
require 'rails/commands/performance/benchmarker'
when 'profiler'
require ENV_PATH
require 'rails/commands/performance/profiler'
when 'plugin'
require APP_PATH
require 'rails/commands/plugin'
when 'runner'
require 'rails/commands/runner'
require ENV_PATH

when '--help', '-h'
puts HELP_TEXT
when '--version', '-v'
ARGV.unshift '--version'
require 'rails/commands/application'
else
puts "Error: Command not recognized"
puts HELP_TEXT
end
67 changes: 0 additions & 67 deletions railties/lib/rails/commands/rails.rb

This file was deleted.

4 changes: 1 addition & 3 deletions railties/lib/rails/generators.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@
require 'active_support/core_ext/module/attribute_accessors'
require 'active_support/core_ext/string/inflections'

# TODO: Do not always push on vendored thor
$LOAD_PATH.unshift("#{File.dirname(__FILE__)}/vendor/thor-0.12.3/lib")
require 'rails/generators/base'
require 'rails/generators/named_base'

Expand Down Expand Up @@ -175,7 +173,7 @@ def self.help
groups[base] << namespace
end

puts "Usage: generate GENERATOR [args] [options]"
puts "Usage: rails generate GENERATOR [args] [options]"
puts
puts "General options:"
puts " -h, [--help] # Print generators options and usage"
Expand Down
2 changes: 1 addition & 1 deletion railties/lib/rails/generators/base.rb
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,7 @@ def class_collisions(*class_names) #:nodoc:
# Use Rails default banner.
#
def self.banner
"#{$0} #{generator_name} #{self.arguments.map{ |a| a.usage }.join(' ')} [options]"
"rails generate #{generator_name} #{self.arguments.map{ |a| a.usage }.join(' ')} [options]"
end

# Sets the base_name taking into account the current class namespace.
Expand Down

0 comments on commit efa8505

Please sign in to comment.