railties 3.0.0.beta → 3.0.0.beta2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +15 -1
- data/README +9 -9
- data/bin/rails +28 -9
- data/guides/images/challenge.png +0 -0
- data/guides/images/edge_badge.png +0 -0
- data/guides/images/posts_index.png +0 -0
- data/guides/images/rails_welcome.png +0 -0
- data/guides/rails_guides.rb +9 -22
- data/guides/rails_guides/generator.rb +79 -50
- data/guides/rails_guides/textile_extensions.rb +3 -3
- data/guides/source/2_2_release_notes.textile +1 -1
- data/guides/source/2_3_release_notes.textile +1 -1
- data/guides/source/3_0_release_notes.textile +46 -38
- data/guides/source/action_controller_overview.textile +2 -2
- data/guides/source/action_mailer_basics.textile +4 -4
- data/guides/source/action_view_overview.textile +2 -2
- data/guides/source/active_record_querying.textile +73 -95
- data/guides/source/active_support_core_extensions.textile +993 -85
- data/guides/source/activerecord_validations_callbacks.textile +3 -3
- data/guides/source/caching_with_rails.textile +1 -1
- data/guides/source/command_line.textile +90 -88
- data/guides/source/configuring.textile +10 -10
- data/guides/source/contribute.textile +2 -2
- data/guides/source/contributing_to_rails.textile +14 -7
- data/guides/source/credits.textile.erb +8 -0
- data/guides/source/debugging_rails_applications.textile +6 -6
- data/guides/source/form_helpers.textile +1 -1
- data/guides/source/generators.textile +14 -14
- data/guides/source/getting_started.textile +634 -500
- data/guides/source/index.textile.erb +16 -1
- data/guides/source/layout.html.erb +7 -1
- data/guides/source/layouts_and_rendering.textile +299 -71
- data/guides/source/migrations.textile +5 -5
- data/guides/source/performance_testing.textile +8 -8
- data/guides/source/plugins.textile +26 -24
- data/guides/source/rails_on_rack.textile +5 -5
- data/guides/source/routing.textile +119 -117
- data/guides/source/security.textile +1 -1
- data/guides/source/testing.textile +4 -4
- data/lib/rails.rb +4 -1
- data/lib/rails/application.rb +44 -7
- data/lib/rails/application/bootstrap.rb +2 -14
- data/lib/rails/application/configuration.rb +69 -5
- data/lib/rails/application/finisher.rb +2 -3
- data/lib/rails/application/metal_loader.rb +1 -1
- data/lib/rails/application/routes_reloader.rb +1 -1
- data/lib/rails/backtrace_cleaner.rb +0 -11
- data/lib/rails/commands.rb +7 -6
- data/lib/rails/commands/application.rb +1 -1
- data/lib/rails/commands/console.rb +1 -1
- data/lib/rails/commands/dbconsole.rb +12 -0
- data/lib/rails/commands/destroy.rb +2 -2
- data/lib/rails/commands/generate.rb +2 -2
- data/lib/rails/commands/performance/benchmarker.rb +2 -2
- data/lib/rails/commands/performance/profiler.rb +2 -2
- data/lib/rails/commands/plugin.rb +6 -6
- data/lib/rails/commands/runner.rb +2 -0
- data/lib/rails/commands/server.rb +23 -8
- data/lib/rails/configuration.rb +2 -84
- data/lib/rails/console/app.rb +4 -3
- data/lib/rails/console/helpers.rb +3 -1
- data/lib/rails/engine.rb +107 -12
- data/lib/rails/engine/configuration.rb +8 -2
- data/lib/rails/generators.rb +22 -7
- data/lib/rails/generators/actions.rb +16 -6
- data/lib/rails/generators/base.rb +15 -8
- data/lib/rails/generators/erb.rb +21 -0
- data/lib/{generators → rails/generators}/erb/controller/controller_generator.rb +4 -5
- data/lib/{generators → rails/generators}/erb/controller/templates/view.html.erb +0 -0
- data/lib/rails/generators/erb/mailer/mailer_generator.rb +13 -0
- data/lib/{generators → rails/generators}/erb/mailer/templates/view.text.erb +0 -0
- data/lib/{generators → rails/generators}/erb/scaffold/scaffold_generator.rb +14 -26
- data/lib/{generators → rails/generators}/erb/scaffold/templates/_form.html.erb +1 -1
- data/lib/{generators → rails/generators}/erb/scaffold/templates/edit.html.erb +0 -0
- data/lib/{generators → rails/generators}/erb/scaffold/templates/index.html.erb +1 -1
- data/lib/{generators → rails/generators}/erb/scaffold/templates/layout.html.erb +1 -0
- data/lib/{generators → rails/generators}/erb/scaffold/templates/new.html.erb +0 -0
- data/lib/{generators → rails/generators}/erb/scaffold/templates/show.html.erb +0 -0
- data/lib/rails/generators/named_base.rb +4 -0
- data/lib/{generators → rails/generators}/rails/app/USAGE +0 -0
- data/lib/{generators → rails/generators}/rails/app/app_generator.rb +21 -7
- data/lib/rails/generators/rails/app/templates/Gemfile +34 -0
- data/lib/{generators → rails/generators}/rails/app/templates/README +9 -8
- data/lib/{generators → rails/generators}/rails/app/templates/Rakefile +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/app/controllers/application_controller.rb +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/app/helpers/application_helper.rb +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/app/models/.empty_directory +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/app/views/layouts/.empty_directory +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/config.ru +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/config/application.rb +4 -3
- data/lib/rails/generators/rails/app/templates/config/boot.rb +14 -0
- data/lib/{generators → rails/generators}/rails/app/templates/config/databases/frontbase.yml +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/config/databases/ibm_db.yml +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/config/databases/mysql.yml +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/config/databases/oracle.yml +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/config/databases/postgresql.yml +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/config/databases/sqlite3.yml +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/config/environment.rb +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/config/environments/development.rb.tt +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/config/environments/production.rb.tt +9 -0
- data/lib/{generators → rails/generators}/rails/app/templates/config/environments/test.rb.tt +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/config/initializers/backtrace_silencers.rb +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/config/initializers/cookie_verification_secret.rb.tt +1 -1
- data/lib/{generators → rails/generators}/rails/app/templates/config/initializers/inflections.rb +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/config/initializers/mime_types.rb +0 -0
- data/lib/rails/generators/rails/app/templates/config/initializers/session_store.rb.tt +10 -0
- data/lib/{generators → rails/generators}/rails/app/templates/config/locales/en.yml +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/config/routes.rb +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/db/seeds.rb +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/doc/README_FOR_APP +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/gitignore +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/public/404.html +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/public/422.html +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/public/500.html +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/public/favicon.ico +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/public/images/rails.png +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/public/index.html +17 -17
- data/lib/{generators → rails/generators}/rails/app/templates/public/javascripts/application.js +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/public/javascripts/controls.js +5 -3
- data/lib/{generators → rails/generators}/rails/app/templates/public/javascripts/dragdrop.js +7 -6
- data/lib/{generators → rails/generators}/rails/app/templates/public/javascripts/effects.js +8 -13
- data/lib/{generators → rails/generators}/rails/app/templates/public/javascripts/prototype.js +1573 -1019
- data/lib/{generators → rails/generators}/rails/app/templates/public/javascripts/rails.js +1 -2
- data/lib/{generators → rails/generators}/rails/app/templates/public/robots.txt +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/public/stylesheets/.empty_directory +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/script/rails +0 -1
- data/lib/{generators → rails/generators}/rails/app/templates/test/fixtures/.empty_directory +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/test/functional/.empty_directory +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/test/integration/.empty_directory +0 -0
- data/lib/{generators → rails/generators}/rails/app/templates/test/performance/browsing_test.rb +1 -1
- data/lib/{generators → rails/generators}/rails/app/templates/test/test_helper.rb +1 -1
- data/lib/{generators → rails/generators}/rails/app/templates/test/unit/.empty_directory +0 -0
- data/lib/{generators → rails/generators}/rails/controller/USAGE +1 -1
- data/lib/{generators → rails/generators}/rails/controller/controller_generator.rb +6 -0
- data/lib/{generators → rails/generators}/rails/controller/templates/controller.rb +0 -0
- data/lib/{generators → rails/generators}/rails/generator/USAGE +1 -1
- data/lib/{generators → rails/generators}/rails/generator/generator_generator.rb +0 -0
- data/lib/{generators → rails/generators}/rails/generator/templates/%file_name%_generator.rb.tt +0 -0
- data/lib/{generators → rails/generators}/rails/generator/templates/USAGE.tt +1 -1
- data/lib/{generators → rails/generators}/rails/generator/templates/templates/.empty_directory +0 -0
- data/lib/{generators → rails/generators}/rails/helper/USAGE +1 -1
- data/lib/{generators → rails/generators}/rails/helper/helper_generator.rb +0 -0
- data/lib/{generators → rails/generators}/rails/helper/templates/helper.rb +0 -0
- data/lib/{generators → rails/generators}/rails/integration_test/USAGE +1 -1
- data/lib/{generators → rails/generators}/rails/integration_test/integration_test_generator.rb +0 -0
- data/lib/{generators → rails/generators}/rails/mailer/USAGE +1 -1
- data/lib/{generators → rails/generators}/rails/mailer/mailer_generator.rb +0 -0
- data/lib/{generators → rails/generators}/rails/mailer/templates/mailer.rb +0 -0
- data/lib/{generators → rails/generators}/rails/metal/USAGE +1 -1
- data/lib/{generators → rails/generators}/rails/metal/metal_generator.rb +0 -0
- data/lib/{generators → rails/generators}/rails/metal/templates/metal.rb +0 -0
- data/lib/{generators → rails/generators}/rails/migration/USAGE +2 -2
- data/lib/{generators → rails/generators}/rails/migration/migration_generator.rb +0 -0
- data/lib/{generators → rails/generators}/rails/model/USAGE +2 -2
- data/lib/{generators → rails/generators}/rails/model/model_generator.rb +0 -0
- data/lib/{generators → rails/generators}/rails/observer/USAGE +1 -1
- data/lib/{generators → rails/generators}/rails/observer/observer_generator.rb +0 -0
- data/lib/{generators → rails/generators}/rails/performance_test/USAGE +1 -1
- data/lib/{generators → rails/generators}/rails/performance_test/performance_test_generator.rb +0 -0
- data/lib/{generators → rails/generators}/rails/plugin/USAGE +1 -1
- data/lib/{generators → rails/generators}/rails/plugin/plugin_generator.rb +1 -1
- data/lib/{generators → rails/generators}/rails/plugin/templates/MIT-LICENSE.tt +0 -0
- data/lib/{generators → rails/generators}/rails/plugin/templates/README.tt +0 -0
- data/lib/rails/generators/rails/plugin/templates/Rakefile.tt +23 -0
- data/lib/{generators → rails/generators}/rails/plugin/templates/init.rb +0 -0
- data/lib/{generators → rails/generators}/rails/plugin/templates/install.rb +0 -0
- data/lib/{generators → rails/generators}/rails/plugin/templates/lib/%file_name%.rb.tt +0 -0
- data/lib/{generators → rails/generators}/rails/plugin/templates/lib/tasks/%file_name%_tasks.rake.tt +0 -0
- data/lib/{generators → rails/generators}/rails/plugin/templates/uninstall.rb +0 -0
- data/lib/{generators → rails/generators}/rails/resource/USAGE +3 -3
- data/lib/{generators → rails/generators}/rails/resource/resource_generator.rb +3 -1
- data/lib/{generators → rails/generators}/rails/scaffold/USAGE +4 -4
- data/lib/{generators → rails/generators}/rails/scaffold/scaffold_generator.rb +1 -1
- data/lib/{generators → rails/generators}/rails/scaffold_controller/USAGE +1 -1
- data/lib/{generators → rails/generators}/rails/scaffold_controller/scaffold_controller_generator.rb +0 -0
- data/lib/{generators → rails/generators}/rails/scaffold_controller/templates/controller.rb +2 -2
- data/lib/{generators → rails/generators}/rails/session_migration/USAGE +1 -1
- data/lib/{generators → rails/generators}/rails/session_migration/session_migration_generator.rb +0 -0
- data/lib/{generators → rails/generators}/rails/stylesheets/USAGE +1 -1
- data/lib/{generators → rails/generators}/rails/stylesheets/stylesheets_generator.rb +0 -0
- data/lib/{generators → rails/generators}/rails/stylesheets/templates/scaffold.css +4 -0
- data/lib/{generators → rails/generators}/test_unit.rb +0 -0
- data/lib/{generators → rails/generators}/test_unit/controller/controller_generator.rb +2 -1
- data/lib/rails/generators/test_unit/controller/templates/functional_test.rb +18 -0
- data/lib/{generators → rails/generators}/test_unit/helper/helper_generator.rb +1 -1
- data/lib/{generators → rails/generators}/test_unit/helper/templates/helper_test.rb +0 -0
- data/lib/{generators → rails/generators}/test_unit/integration/integration_generator.rb +1 -1
- data/lib/{generators → rails/generators}/test_unit/integration/templates/integration_test.rb +0 -0
- data/lib/{generators → rails/generators}/test_unit/mailer/mailer_generator.rb +1 -8
- data/lib/rails/generators/test_unit/mailer/templates/functional_test.rb +20 -0
- data/lib/{generators → rails/generators}/test_unit/model/model_generator.rb +1 -1
- data/lib/{generators → rails/generators}/test_unit/model/templates/fixtures.yml +0 -0
- data/lib/{generators → rails/generators}/test_unit/model/templates/unit_test.rb +0 -0
- data/lib/{generators → rails/generators}/test_unit/observer/observer_generator.rb +1 -1
- data/lib/{generators → rails/generators}/test_unit/observer/templates/unit_test.rb +0 -0
- data/lib/{generators → rails/generators}/test_unit/performance/performance_generator.rb +1 -1
- data/lib/{generators → rails/generators}/test_unit/performance/templates/performance_test.rb +0 -0
- data/lib/{generators → rails/generators}/test_unit/plugin/plugin_generator.rb +1 -1
- data/lib/{generators → rails/generators}/test_unit/plugin/templates/%file_name%_test.rb.tt +0 -0
- data/lib/{generators → rails/generators}/test_unit/plugin/templates/test_helper.rb +0 -0
- data/lib/{generators → rails/generators}/test_unit/scaffold/scaffold_generator.rb +1 -1
- data/lib/{generators → rails/generators}/test_unit/scaffold/templates/functional_test.rb +9 -5
- data/{builtin/rails_info → lib}/rails/info.rb +0 -0
- data/{builtin/rails_info → lib}/rails/info_controller.rb +0 -0
- data/{builtin/routes.rb → lib/rails/info_routes.rb} +2 -2
- data/lib/rails/{subscriber.rb → log_subscriber.rb} +27 -27
- data/lib/rails/{subscriber → log_subscriber}/test_helper.rb +15 -16
- data/lib/rails/plugin.rb +31 -8
- data/lib/rails/rack/debugger.rb +3 -1
- data/lib/rails/rack/logger.rb +4 -4
- data/lib/rails/railtie.rb +179 -16
- data/lib/rails/railtie/configuration.rb +56 -1
- data/lib/rails/tasks/documentation.rake +38 -20
- data/lib/rails/tasks/framework.rake +16 -9
- data/lib/rails/tasks/misc.rake +3 -5
- data/lib/rails/tasks/routes.rake +2 -2
- data/lib/rails/test_help.rb +21 -1
- data/lib/rails/test_unit/railtie.rb +1 -3
- data/lib/rails/version.rb +3 -2
- metadata +199 -171
- data/builtin/rails_info/rails/info_helper.rb +0 -2
- data/lib/generators/erb.rb +0 -8
- data/lib/generators/erb/mailer/mailer_generator.rb +0 -20
- data/lib/generators/rails/app/templates/Gemfile +0 -34
- data/lib/generators/rails/app/templates/config/boot.rb +0 -17
- data/lib/generators/rails/app/templates/config/initializers/session_store.rb.tt +0 -15
- data/lib/generators/rails/model_subclass/model_subclass_generator.rb +0 -12
- data/lib/generators/rails/plugin/templates/Rakefile.tt +0 -10
- data/lib/generators/test_unit/controller/templates/functional_test.rb +0 -8
- data/lib/generators/test_unit/mailer/templates/fixture +0 -3
- data/lib/generators/test_unit/mailer/templates/functional_test.rb +0 -22
- data/lib/rails/railties_path.rb +0 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
#
|
|
3
3
|
# Installing plugins:
|
|
4
4
|
#
|
|
5
|
-
# $
|
|
5
|
+
# $ rails plugin install continuous_builder asset_timestamping
|
|
6
6
|
#
|
|
7
7
|
# Specifying revisions:
|
|
8
8
|
#
|
|
@@ -319,13 +319,13 @@ module Commands
|
|
|
319
319
|
o.separator ""
|
|
320
320
|
o.separator "EXAMPLES"
|
|
321
321
|
o.separator " Install a plugin:"
|
|
322
|
-
o.separator " #{@script_name} install continuous_builder\n"
|
|
322
|
+
o.separator " #{@script_name} plugin install continuous_builder\n"
|
|
323
323
|
o.separator " Install a plugin from a subversion URL:"
|
|
324
|
-
o.separator " #{@script_name} install http://dev.rubyonrails.com/svn/rails/plugins/continuous_builder\n"
|
|
324
|
+
o.separator " #{@script_name} plugin install http://dev.rubyonrails.com/svn/rails/plugins/continuous_builder\n"
|
|
325
325
|
o.separator " Install a plugin from a git URL:"
|
|
326
|
-
o.separator " #{@script_name} install git://github.com/SomeGuy/my_awesome_plugin.git\n"
|
|
326
|
+
o.separator " #{@script_name} plugin install git://github.com/SomeGuy/my_awesome_plugin.git\n"
|
|
327
327
|
o.separator " Install a plugin and add a svn:externals entry to vendor/plugins"
|
|
328
|
-
o.separator " #{@script_name} install -x continuous_builder\n"
|
|
328
|
+
o.separator " #{@script_name} plugin install -x continuous_builder\n"
|
|
329
329
|
end
|
|
330
330
|
end
|
|
331
331
|
|
|
@@ -381,7 +381,7 @@ module Commands
|
|
|
381
381
|
"Exports the plugin, allowing you to check it into your local repository. Does not enable updates, or add an svn:externals entry.") { |v| @method = :export }
|
|
382
382
|
o.on( "-q", "--quiet",
|
|
383
383
|
"Suppresses the output from installation.",
|
|
384
|
-
"Ignored if -v is passed (
|
|
384
|
+
"Ignored if -v is passed (rails plugin -v install ...)") { |v| @options[:quiet] = true }
|
|
385
385
|
o.on( "-r REVISION", "--revision REVISION",
|
|
386
386
|
"Checks out the given revision from subversion or git.",
|
|
387
387
|
"Ignored if subversion/git is not used.") { |v| @options[:revision] = v }
|
|
@@ -6,20 +6,21 @@ module Rails
|
|
|
6
6
|
class Server < ::Rack::Server
|
|
7
7
|
class Options
|
|
8
8
|
def parse!(args)
|
|
9
|
-
options = {}
|
|
10
|
-
|
|
9
|
+
args, options = args.dup, {}
|
|
10
|
+
|
|
11
11
|
opt_parser = OptionParser.new do |opts|
|
|
12
|
+
opts.banner = "Usage: rails server [options]"
|
|
12
13
|
opts.on("-p", "--port=port", Integer,
|
|
13
|
-
"Runs Rails on the specified port.", "Default:
|
|
14
|
+
"Runs Rails on the specified port.", "Default: 3000") { |v| options[:Port] = v }
|
|
14
15
|
opts.on("-b", "--binding=ip", String,
|
|
15
|
-
"Binds Rails to the specified ip.", "Default:
|
|
16
|
+
"Binds Rails to the specified ip.", "Default: 0.0.0.0") { |v| options[:Host] = v }
|
|
16
17
|
opts.on("-c", "--config=file", String,
|
|
17
18
|
"Use custom rackup configuration file") { |v| options[:config] = v }
|
|
18
19
|
opts.on("-d", "--daemon", "Make server run as a Daemon.") { options[:daemonize] = true }
|
|
19
20
|
opts.on("-u", "--debugger", "Enable ruby-debugging for the server.") { options[:debugger] = true }
|
|
20
21
|
opts.on("-e", "--environment=name", String,
|
|
21
22
|
"Specifies the environment to run this server under (test/development/production).",
|
|
22
|
-
"Default:
|
|
23
|
+
"Default: development") { |v| options[:environment] = v }
|
|
23
24
|
|
|
24
25
|
opts.separator ""
|
|
25
26
|
|
|
@@ -33,22 +34,36 @@ module Rails
|
|
|
33
34
|
end
|
|
34
35
|
end
|
|
35
36
|
|
|
37
|
+
def initialize(*)
|
|
38
|
+
super
|
|
39
|
+
set_environment
|
|
40
|
+
end
|
|
41
|
+
|
|
36
42
|
def opt_parser
|
|
37
43
|
Options.new
|
|
38
44
|
end
|
|
39
45
|
|
|
40
|
-
def
|
|
41
|
-
ENV["RAILS_ENV"]
|
|
46
|
+
def set_environment
|
|
47
|
+
ENV["RAILS_ENV"] ||= options[:environment]
|
|
48
|
+
end
|
|
42
49
|
|
|
50
|
+
def start
|
|
43
51
|
puts "=> Booting #{ActiveSupport::Inflector.demodulize(server)}"
|
|
44
52
|
puts "=> Rails #{Rails.version} application starting in #{Rails.env} on http://#{options[:Host]}:#{options[:Port]}"
|
|
45
53
|
puts "=> Call with -d to detach" unless options[:daemonize]
|
|
46
54
|
trap(:INT) { exit }
|
|
47
55
|
puts "=> Ctrl-C to shutdown server" unless options[:daemonize]
|
|
48
56
|
|
|
57
|
+
#Create required tmp directories if not found
|
|
58
|
+
%w(cache pids sessions sockets).each do |dir_to_make|
|
|
59
|
+
FileUtils.mkdir_p(Rails.root.join('tmp', dir_to_make))
|
|
60
|
+
end
|
|
61
|
+
|
|
49
62
|
super
|
|
50
63
|
ensure
|
|
51
|
-
|
|
64
|
+
# The '-h' option calls exit before @options is set.
|
|
65
|
+
# If we call 'options' with it unset, we get double help banners.
|
|
66
|
+
puts 'Exiting' unless @options && options[:daemonize]
|
|
52
67
|
end
|
|
53
68
|
|
|
54
69
|
def middleware
|
data/lib/rails/configuration.rb
CHANGED
|
@@ -4,96 +4,14 @@ require 'rails/rack'
|
|
|
4
4
|
|
|
5
5
|
module Rails
|
|
6
6
|
module Configuration
|
|
7
|
-
module Shared
|
|
8
|
-
def middleware
|
|
9
|
-
@@default_middleware_stack ||= ActionDispatch::MiddlewareStack.new.tap do |middleware|
|
|
10
|
-
middleware.use('::ActionDispatch::Static', lambda { Rails.public_path }, :if => lambda { Rails.application.config.serve_static_assets })
|
|
11
|
-
middleware.use('::Rack::Lock', :if => lambda { !Rails.application.config.allow_concurrency })
|
|
12
|
-
middleware.use('::Rack::Runtime')
|
|
13
|
-
middleware.use('::Rails::Rack::Logger')
|
|
14
|
-
middleware.use('::ActionDispatch::ShowExceptions', lambda { Rails.application.config.consider_all_requests_local })
|
|
15
|
-
middleware.use('::ActionDispatch::Callbacks', lambda { !Rails.application.config.cache_classes })
|
|
16
|
-
middleware.use('::ActionDispatch::Cookies')
|
|
17
|
-
middleware.use(lambda { ActionController::Base.session_store }, lambda { ActionController::Base.session_options })
|
|
18
|
-
middleware.use('::ActionDispatch::Flash', :if => lambda { ActionController::Base.session_store })
|
|
19
|
-
middleware.use(lambda { Rails.application.metal_loader.build_middleware(Rails.application.config.metals) }, :if => lambda { Rails.application.metal_loader.metals.any? })
|
|
20
|
-
middleware.use('ActionDispatch::ParamsParser')
|
|
21
|
-
middleware.use('::Rack::MethodOverride')
|
|
22
|
-
middleware.use('::ActionDispatch::Head')
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
# Holds generators configuration:
|
|
27
|
-
#
|
|
28
|
-
# config.generators do |g|
|
|
29
|
-
# g.orm :datamapper, :migration => true
|
|
30
|
-
# g.template_engine :haml
|
|
31
|
-
# g.test_framework :rspec
|
|
32
|
-
# end
|
|
33
|
-
#
|
|
34
|
-
# If you want to disable color in console, do:
|
|
35
|
-
#
|
|
36
|
-
# config.generators.colorize_logging = false
|
|
37
|
-
#
|
|
38
|
-
def generators
|
|
39
|
-
@@generators ||= Rails::Configuration::Generators.new
|
|
40
|
-
if block_given?
|
|
41
|
-
yield @@generators
|
|
42
|
-
else
|
|
43
|
-
@@generators
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def after_initialize_blocks
|
|
48
|
-
@@after_initialize_blocks ||= []
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def after_initialize(&blk)
|
|
52
|
-
after_initialize_blocks << blk if blk
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def to_prepare_blocks
|
|
56
|
-
@@to_prepare_blocks ||= []
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def to_prepare(&blk)
|
|
60
|
-
to_prepare_blocks << blk if blk
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def respond_to?(name)
|
|
64
|
-
super || name.to_s =~ config_key_regexp
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
private
|
|
68
|
-
|
|
69
|
-
def method_missing(name, *args, &blk)
|
|
70
|
-
if name.to_s =~ config_key_regexp
|
|
71
|
-
return $2 == '=' ? options[$1] = args.first : options[$1]
|
|
72
|
-
end
|
|
73
|
-
super
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
def config_key_regexp
|
|
77
|
-
bits = config_keys.map { |n| Regexp.escape(n.to_s) }.join('|')
|
|
78
|
-
/^(#{bits})(?:=)?$/
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
def config_keys
|
|
82
|
-
(Railtie.railtie_names + Engine.engine_names).map { |n| n.to_s }.uniq
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
def options
|
|
86
|
-
@@options ||= Hash.new { |h,k| h[k] = ActiveSupport::OrderedOptions.new }
|
|
87
|
-
end
|
|
88
|
-
end
|
|
89
|
-
|
|
90
7
|
class Generators #:nodoc:
|
|
91
|
-
attr_accessor :aliases, :options, :fallbacks, :colorize_logging
|
|
8
|
+
attr_accessor :aliases, :options, :templates, :fallbacks, :colorize_logging
|
|
92
9
|
|
|
93
10
|
def initialize
|
|
94
11
|
@aliases = Hash.new { |h,k| h[k] = {} }
|
|
95
12
|
@options = Hash.new { |h,k| h[k] = {} }
|
|
96
13
|
@fallbacks = {}
|
|
14
|
+
@templates = []
|
|
97
15
|
@colorize_logging = true
|
|
98
16
|
end
|
|
99
17
|
|
data/lib/rails/console/app.rb
CHANGED
|
@@ -17,8 +17,8 @@ end
|
|
|
17
17
|
# create a new session. If a block is given, the new session will be yielded
|
|
18
18
|
# to the block before being returned.
|
|
19
19
|
def new_session
|
|
20
|
-
app =
|
|
21
|
-
session =
|
|
20
|
+
app = Rails.application
|
|
21
|
+
session = ActionDispatch::Integration::Session.new(app)
|
|
22
22
|
yield session if block_given?
|
|
23
23
|
session
|
|
24
24
|
end
|
|
@@ -26,7 +26,8 @@ end
|
|
|
26
26
|
# reloads the environment
|
|
27
27
|
def reload!(print=true)
|
|
28
28
|
puts "Reloading..." if print
|
|
29
|
-
|
|
29
|
+
# This triggers the to_prepare callbacks
|
|
30
|
+
ActionDispatch::Callbacks.new(Proc.new {}, false).call({})
|
|
30
31
|
true
|
|
31
32
|
end
|
|
32
33
|
|
data/lib/rails/engine.rb
CHANGED
|
@@ -1,7 +1,91 @@
|
|
|
1
|
-
require 'active_support/core_ext/module/delegation'
|
|
2
1
|
require 'rails/railtie'
|
|
2
|
+
require 'active_support/core_ext/module/delegation'
|
|
3
|
+
require 'pathname'
|
|
3
4
|
|
|
4
5
|
module Rails
|
|
6
|
+
# Rails::Engine allows you to wrap a specific Rails application and share it accross
|
|
7
|
+
# different applications. Since Rails 3.0, every Rails::Application is nothing
|
|
8
|
+
# more than an Engine, allowing you to share it very easily.
|
|
9
|
+
#
|
|
10
|
+
# Any Rails::Engine is also a Rails::Railtie, so the same methods (like rake_tasks and
|
|
11
|
+
# generators) and configuration available in the latter can also be used in the former.
|
|
12
|
+
#
|
|
13
|
+
# == Creating an Engine
|
|
14
|
+
#
|
|
15
|
+
# In Rails versions before to 3.0, your gems automatically behaved as Engine, however
|
|
16
|
+
# this coupled Rails to Rubygems. Since Rails 3.0, if you want a gem to automatically
|
|
17
|
+
# behave as Engine, you have to specify an Engine for it somewhere inside your plugin
|
|
18
|
+
# lib folder (similar with how we spceify a Railtie):
|
|
19
|
+
#
|
|
20
|
+
# # lib/my_engine.rb
|
|
21
|
+
# module MyEngine
|
|
22
|
+
# class Engine < Rails::Engine
|
|
23
|
+
# engine_name :my_engine
|
|
24
|
+
# end
|
|
25
|
+
# end
|
|
26
|
+
#
|
|
27
|
+
# Then ensure that this file is loaded at the top of your config/application.rb (or in
|
|
28
|
+
# your Gemfile) and it will automatically load models, controllers, helpers and metals
|
|
29
|
+
# inside app, load routes at "config/routes.rb", load locales at "config/locales/*",
|
|
30
|
+
# load tasks at "lib/tasks/*".
|
|
31
|
+
#
|
|
32
|
+
# == Configuration
|
|
33
|
+
#
|
|
34
|
+
# Besides the Railtie configuration which is shared across the application, in a
|
|
35
|
+
# Rails::Engine you can access load_paths, eager_load_paths and load_once_paths,
|
|
36
|
+
# which differently from a Railtie, are scoped to the current Engine.
|
|
37
|
+
#
|
|
38
|
+
# Example:
|
|
39
|
+
#
|
|
40
|
+
# class MyEngine < Rails::Engine
|
|
41
|
+
# # config.middleware is shared configururation
|
|
42
|
+
# config.middleware.use MyEngine::Middleware
|
|
43
|
+
#
|
|
44
|
+
# # Add a load path for this specific Engine
|
|
45
|
+
# config.load_paths << File.expand_path("../lib/some/path", __FILE__)
|
|
46
|
+
# end
|
|
47
|
+
#
|
|
48
|
+
# == Paths
|
|
49
|
+
#
|
|
50
|
+
# Since Rails 3.0, both your Application and Engines do not have hardcoded paths.
|
|
51
|
+
# This means that you are not required to place your controllers at "app/controllers",
|
|
52
|
+
# but in any place which you find convenient.
|
|
53
|
+
#
|
|
54
|
+
# For example, let's suppose you want to lay your controllers at lib/controllers, all
|
|
55
|
+
# you need to do is:
|
|
56
|
+
#
|
|
57
|
+
# class MyEngine < Rails::Engine
|
|
58
|
+
# paths.app.controllers = "lib/controllers"
|
|
59
|
+
# end
|
|
60
|
+
#
|
|
61
|
+
# You can also have your controllers being loaded from both "app/controllers" and
|
|
62
|
+
# "lib/controllers":
|
|
63
|
+
#
|
|
64
|
+
# class MyEngine < Rails::Engine
|
|
65
|
+
# paths.app.controllers << "lib/controllers"
|
|
66
|
+
# end
|
|
67
|
+
#
|
|
68
|
+
# The available paths in an Engine are:
|
|
69
|
+
#
|
|
70
|
+
# class MyEngine < Rails::Engine
|
|
71
|
+
# paths.app = "app"
|
|
72
|
+
# paths.app.controllers = "app/controllers"
|
|
73
|
+
# paths.app.helpers = "app/helpers"
|
|
74
|
+
# paths.app.models = "app/models"
|
|
75
|
+
# paths.app.metals = "app/metal"
|
|
76
|
+
# paths.app.views = "app/views"
|
|
77
|
+
# paths.lib = "lib"
|
|
78
|
+
# paths.lib.tasks = "lib/tasks"
|
|
79
|
+
# paths.config = "config"
|
|
80
|
+
# paths.config.initializers = "config/initializers"
|
|
81
|
+
# paths.config.locales = "config/locales"
|
|
82
|
+
# paths.config.routes = "config/routes.rb"
|
|
83
|
+
# end
|
|
84
|
+
#
|
|
85
|
+
# Your Application class adds a couple more paths to this set. And as in your Application,
|
|
86
|
+
# all folders under "app" are automatically added to the load path. So if you have
|
|
87
|
+
# "app/observers", it's added by default.
|
|
88
|
+
#
|
|
5
89
|
class Engine < Railtie
|
|
6
90
|
autoload :Configurable, "rails/engine/configurable"
|
|
7
91
|
autoload :Configuration, "rails/engine/configuration"
|
|
@@ -9,14 +93,15 @@ module Rails
|
|
|
9
93
|
class << self
|
|
10
94
|
attr_accessor :called_from
|
|
11
95
|
|
|
12
|
-
|
|
13
|
-
alias :
|
|
96
|
+
# TODO Remove this. It's deprecated.
|
|
97
|
+
alias :engine_name :railtie_name
|
|
14
98
|
|
|
15
99
|
def inherited(base)
|
|
16
|
-
unless abstract_railtie?
|
|
100
|
+
unless base.abstract_railtie?
|
|
17
101
|
base.called_from = begin
|
|
18
|
-
|
|
19
|
-
|
|
102
|
+
# Remove the line number from backtraces making sure we don't leave anything behind
|
|
103
|
+
call_stack = caller.map { |p| p.split(':')[0..-2].join(':') }
|
|
104
|
+
File.dirname(call_stack.detect { |p| p !~ %r[railties[\w\-\.]*/lib/rails|rack[\w\-\.]*/lib/rack] })
|
|
20
105
|
end
|
|
21
106
|
end
|
|
22
107
|
|
|
@@ -42,7 +127,7 @@ module Rails
|
|
|
42
127
|
delegate :middleware, :paths, :root, :to => :config
|
|
43
128
|
|
|
44
129
|
def load_tasks
|
|
45
|
-
super
|
|
130
|
+
super
|
|
46
131
|
config.paths.lib.tasks.to_a.sort.each { |ext| load(ext) }
|
|
47
132
|
end
|
|
48
133
|
|
|
@@ -76,10 +161,11 @@ module Rails
|
|
|
76
161
|
end
|
|
77
162
|
end
|
|
78
163
|
|
|
164
|
+
# DEPRECATED: Remove in 3.1
|
|
79
165
|
initializer :add_routing_namespaces do |app|
|
|
80
166
|
paths.app.controllers.to_a.each do |load_path|
|
|
81
167
|
load_path = File.expand_path(load_path)
|
|
82
|
-
Dir["#{load_path}
|
|
168
|
+
Dir["#{load_path}/*/**/*_controller.rb"].collect do |path|
|
|
83
169
|
namespace = File.dirname(path).sub(/#{load_path}\/?/, '')
|
|
84
170
|
app.routes.controller_namespaces << namespace unless namespace.empty?
|
|
85
171
|
end
|
|
@@ -89,19 +175,28 @@ module Rails
|
|
|
89
175
|
# I18n load paths are a special case since the ones added
|
|
90
176
|
# later have higher priority.
|
|
91
177
|
initializer :add_locales do
|
|
92
|
-
config.i18n.
|
|
178
|
+
config.i18n.railties_load_path.concat(paths.config.locales.to_a)
|
|
93
179
|
end
|
|
94
180
|
|
|
95
181
|
initializer :add_view_paths do
|
|
96
182
|
views = paths.app.views.to_a
|
|
97
|
-
|
|
98
|
-
|
|
183
|
+
ActiveSupport.on_load(:action_controller) do
|
|
184
|
+
prepend_view_path(views)
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
ActiveSupport.on_load(:action_mailer) do
|
|
188
|
+
prepend_view_path(views)
|
|
189
|
+
end
|
|
99
190
|
end
|
|
100
191
|
|
|
101
192
|
initializer :add_metals do |app|
|
|
102
193
|
app.metal_loader.paths.unshift(*paths.app.metals.to_a)
|
|
103
194
|
end
|
|
104
195
|
|
|
196
|
+
initializer :add_generator_templates do |app|
|
|
197
|
+
config.generators.templates.unshift(*paths.lib.templates.to_a)
|
|
198
|
+
end
|
|
199
|
+
|
|
105
200
|
initializer :load_application_initializers do
|
|
106
201
|
paths.config.initializers.to_a.sort.each do |initializer|
|
|
107
202
|
load(initializer)
|
|
@@ -127,4 +222,4 @@ module Rails
|
|
|
127
222
|
app.config.reload_engines
|
|
128
223
|
end
|
|
129
224
|
end
|
|
130
|
-
end
|
|
225
|
+
end
|
|
@@ -7,6 +7,7 @@ module Rails
|
|
|
7
7
|
attr_writer :eager_load_paths, :load_once_paths, :load_paths
|
|
8
8
|
|
|
9
9
|
def initialize(root=nil)
|
|
10
|
+
super()
|
|
10
11
|
@root = root
|
|
11
12
|
end
|
|
12
13
|
|
|
@@ -17,14 +18,19 @@ module Rails
|
|
|
17
18
|
paths.app.controllers "app/controllers", :eager_load => true
|
|
18
19
|
paths.app.helpers "app/helpers", :eager_load => true
|
|
19
20
|
paths.app.models "app/models", :eager_load => true
|
|
20
|
-
paths.app.
|
|
21
|
-
paths.app.
|
|
21
|
+
paths.app.mailers "app/mailers", :eager_load => true
|
|
22
|
+
paths.app.metals "app/metal", :eager_load => true
|
|
23
|
+
paths.app.views "app/views", :eager_load => true
|
|
22
24
|
paths.lib "lib", :load_path => true
|
|
23
25
|
paths.lib.tasks "lib/tasks", :glob => "**/*.rake"
|
|
26
|
+
paths.lib.templates "lib/templates"
|
|
24
27
|
paths.config "config"
|
|
25
28
|
paths.config.initializers "config/initializers", :glob => "**/*.rb"
|
|
26
29
|
paths.config.locales "config/locales", :glob => "*.{rb,yml}"
|
|
27
30
|
paths.config.routes "config/routes.rb"
|
|
31
|
+
paths.public "public"
|
|
32
|
+
paths.public.javascripts "public/javascripts"
|
|
33
|
+
paths.public.stylesheets "public/stylesheets"
|
|
28
34
|
paths
|
|
29
35
|
end
|
|
30
36
|
end
|
data/lib/rails/generators.rb
CHANGED
|
@@ -3,17 +3,23 @@ $:.unshift(activesupport_path) if File.directory?(activesupport_path) && !$:.inc
|
|
|
3
3
|
|
|
4
4
|
require 'active_support'
|
|
5
5
|
require 'active_support/core_ext/object/blank'
|
|
6
|
-
require 'active_support/core_ext/object/
|
|
6
|
+
require 'active_support/core_ext/object/singleton_class'
|
|
7
7
|
require 'active_support/core_ext/array/extract_options'
|
|
8
8
|
require 'active_support/core_ext/hash/deep_merge'
|
|
9
9
|
require 'active_support/core_ext/module/attribute_accessors'
|
|
10
10
|
require 'active_support/core_ext/string/inflections'
|
|
11
11
|
|
|
12
12
|
require 'rails/generators/base'
|
|
13
|
-
require 'rails/generators/named_base'
|
|
14
13
|
|
|
15
14
|
module Rails
|
|
16
15
|
module Generators
|
|
16
|
+
autoload :Actions, 'rails/generators/actions'
|
|
17
|
+
autoload :ActiveModel, 'rails/generators/active_model'
|
|
18
|
+
autoload :Migration, 'rails/generators/migration'
|
|
19
|
+
autoload :NamedBase, 'rails/generators/named_base'
|
|
20
|
+
autoload :ResourceHelpers, 'rails/generators/resource_helpers'
|
|
21
|
+
autoload :TestCase, 'rails/generators/test_case'
|
|
22
|
+
|
|
17
23
|
DEFAULT_ALIASES = {
|
|
18
24
|
:rails => {
|
|
19
25
|
:actions => '-a',
|
|
@@ -66,6 +72,11 @@ module Rails
|
|
|
66
72
|
aliases.deep_merge! config.aliases
|
|
67
73
|
options.deep_merge! config.options
|
|
68
74
|
fallbacks.merge! config.fallbacks
|
|
75
|
+
templates_path.concat config.templates
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def self.templates_path
|
|
79
|
+
@templates_path ||= []
|
|
69
80
|
end
|
|
70
81
|
|
|
71
82
|
def self.aliases #:nodoc:
|
|
@@ -161,7 +172,7 @@ module Rails
|
|
|
161
172
|
end
|
|
162
173
|
|
|
163
174
|
# Show help message with available generators.
|
|
164
|
-
def self.help
|
|
175
|
+
def self.help(command = 'generate')
|
|
165
176
|
lookup!
|
|
166
177
|
|
|
167
178
|
namespaces = subclasses.map{ |k| k.namespace }
|
|
@@ -173,7 +184,7 @@ module Rails
|
|
|
173
184
|
groups[base] << namespace
|
|
174
185
|
end
|
|
175
186
|
|
|
176
|
-
puts "Usage: rails
|
|
187
|
+
puts "Usage: rails #{command} GENERATOR [args] [options]"
|
|
177
188
|
puts
|
|
178
189
|
puts "General options:"
|
|
179
190
|
puts " -h, [--help] # Print generators options and usage"
|
|
@@ -191,6 +202,10 @@ module Rails
|
|
|
191
202
|
rails.delete("app")
|
|
192
203
|
print_list("rails", rails)
|
|
193
204
|
|
|
205
|
+
groups.delete("active_record") if options[:rails][:orm] == :active_record
|
|
206
|
+
groups.delete("test_unit") if options[:rails][:test_framework] == :test_unit
|
|
207
|
+
groups.delete("erb") if options[:rails][:template_engine] == :erb
|
|
208
|
+
|
|
194
209
|
groups.sort.each { |b, n| print_list(b, n) }
|
|
195
210
|
end
|
|
196
211
|
|
|
@@ -227,7 +242,7 @@ module Rails
|
|
|
227
242
|
paths = namespaces_to_paths(namespaces)
|
|
228
243
|
|
|
229
244
|
paths.each do |raw_path|
|
|
230
|
-
["
|
|
245
|
+
["rails/generators", "generators"].each do |base|
|
|
231
246
|
path = "#{base}/#{raw_path}_generator"
|
|
232
247
|
|
|
233
248
|
begin
|
|
@@ -250,7 +265,7 @@ module Rails
|
|
|
250
265
|
load_generators_from_railties!
|
|
251
266
|
|
|
252
267
|
$LOAD_PATH.each do |base|
|
|
253
|
-
Dir[File.join(base, "{generators,
|
|
268
|
+
Dir[File.join(base, "{rails/generators,generators}", "**", "*_generator.rb")].each do |path|
|
|
254
269
|
begin
|
|
255
270
|
require path
|
|
256
271
|
rescue Exception => e
|
|
@@ -286,4 +301,4 @@ end
|
|
|
286
301
|
|
|
287
302
|
# If the application was already defined, configure generators,
|
|
288
303
|
# otherwise you have to configure it by hand.
|
|
289
|
-
Rails::Generators.configure! if Rails.respond_to?(:application) && Rails.application
|
|
304
|
+
Rails::Generators.configure! if Rails.respond_to?(:application) && Rails.application
|