aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2010-02-03 18:49:47 +0100
committerJosé Valim <jose.valim@gmail.com>2010-02-03 18:49:47 +0100
commitefa850558facf2fbaaf226f1444802da83924b82 (patch)
tree236380296b0d0f54f5d2e6d8523930d72e9ff645
parent391f2543c96a9b3de4e44f4ea6aeee2f53ad9e5c (diff)
downloadrails-efa850558facf2fbaaf226f1444802da83924b82.tar.gz
rails-efa850558facf2fbaaf226f1444802da83924b82.tar.bz2
rails-efa850558facf2fbaaf226f1444802da83924b82.zip
Make bin/rails call rails/commands/application, fix generators usage and update .gitignores.
-rw-r--r--.gitignore5
-rwxr-xr-xrailties/bin/rails27
-rw-r--r--railties/lib/generators/rails/app/templates/gitignore1
-rw-r--r--railties/lib/generators/rails/app/templates/script/rails2
-rw-r--r--railties/lib/rails/commands.rb79
-rw-r--r--railties/lib/rails/commands/rails.rb67
-rw-r--r--railties/lib/rails/generators.rb4
-rw-r--r--railties/lib/rails/generators/base.rb2
8 files changed, 76 insertions, 111 deletions
diff --git a/.gitignore b/.gitignore
index 4082dd9a51..715d0bc4bc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
diff --git a/railties/bin/rails b/railties/bin/rails
index 44842e2234..72c47b533f 100755
--- a/railties/bin/rails
+++ b/railties/bin/rails
@@ -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 \ No newline at end of file
diff --git a/railties/lib/generators/rails/app/templates/gitignore b/railties/lib/generators/rails/app/templates/gitignore
index a4f05d101d..af64fae5e7 100644
--- a/railties/lib/generators/rails/app/templates/gitignore
+++ b/railties/lib/generators/rails/app/templates/gitignore
@@ -1,3 +1,4 @@
+.bundle
db/*.sqlite3
log/*.log
tmp/**/*
diff --git a/railties/lib/generators/rails/app/templates/script/rails b/railties/lib/generators/rails/app/templates/script/rails
index c23d24b30b..2fcf6d09b5 100644
--- a/railties/lib/generators/rails/app/templates/script/rails
+++ b/railties/lib/generators/rails/app/templates/script/rails
@@ -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'
diff --git a/railties/lib/rails/commands.rb b/railties/lib/rails/commands.rb
index 841e98a0dc..f0dcf61d98 100644
--- a/railties/lib/rails/commands.rb
+++ b/railties/lib/rails/commands.rb
@@ -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 \ No newline at end of file
diff --git a/railties/lib/rails/commands/rails.rb b/railties/lib/rails/commands/rails.rb
deleted file mode 100644
index 9597e2e7e6..0000000000
--- a/railties/lib/rails/commands/rails.rb
+++ /dev/null
@@ -1,67 +0,0 @@
-if ARGV.empty?
- ARGV << '--help'
-end
-
-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
-
-
-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
-else
- puts "Error: Command not recognized"
- puts HELP_TEXT
-end \ No newline at end of file
diff --git a/railties/lib/rails/generators.rb b/railties/lib/rails/generators.rb
index 1f380970d0..5d95f2fa52 100644
--- a/railties/lib/rails/generators.rb
+++ b/railties/lib/rails/generators.rb
@@ -9,8 +9,6 @@ require 'active_support/core_ext/hash/deep_merge'
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'
@@ -175,7 +173,7 @@ module Rails
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"
diff --git a/railties/lib/rails/generators/base.rb b/railties/lib/rails/generators/base.rb
index ec0659032f..dfa0d573c9 100644
--- a/railties/lib/rails/generators/base.rb
+++ b/railties/lib/rails/generators/base.rb
@@ -261,7 +261,7 @@ module Rails
# 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.