railties 3.0.0.beta → 3.0.0.beta2
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -92,7 +92,7 @@ Rails 2 introduced a new default session storage, CookieStore. CookieStore saves
|
|
92
92
|
That means the security of this storage depends on this secret (and on the digest algorithm, which defaults to SHA512, which has not been compromised, yet). So _(highlight)don't use a trivial secret, i.e. a word from a dictionary, or one which is shorter than 30 characters_. Put the secret in your environment.rb:
|
93
93
|
|
94
94
|
<ruby>
|
95
|
-
config.
|
95
|
+
config.action_dispatch.session = {
|
96
96
|
:key => '_app_session',
|
97
97
|
:secret => '0x0dkfj3927dkc7djdh36rkckdfzsg...'
|
98
98
|
}
|
@@ -56,7 +56,7 @@ h5. What are Fixtures?
|
|
56
56
|
|
57
57
|
_Fixtures_ is a fancy word for sample data. Fixtures allow you to populate your testing database with predefined data before your tests run. Fixtures are database independent and assume one of two formats: *YAML* or *CSV*. In this guide we will use *YAML* which is the preferred format.
|
58
58
|
|
59
|
-
You'll find fixtures under your +test/fixtures+ directory. When you run +
|
59
|
+
You'll find fixtures under your +test/fixtures+ directory. When you run +rails generate model+ to create a new model, fixture stubs will be automatically created and placed in this directory.
|
60
60
|
|
61
61
|
h5. YAML
|
62
62
|
|
@@ -144,10 +144,10 @@ For this guide we will be using Rails _scaffolding_. It will create the model, a
|
|
144
144
|
|
145
145
|
NOTE: For more information on Rails _scaffolding_, refer to "Getting Started with Rails":getting_started.html
|
146
146
|
|
147
|
-
When you use +
|
147
|
+
When you use +rails generate scaffold+, for a resource among other things it creates a test stub in the +test/unit+ folder:
|
148
148
|
|
149
149
|
<pre>
|
150
|
-
$
|
150
|
+
$ rails generate scaffold post title:string body:text
|
151
151
|
...
|
152
152
|
create app/models/post.rb
|
153
153
|
create test/unit/post_test.rb
|
@@ -604,7 +604,7 @@ Integration tests are used to test the interaction among any number of controlle
|
|
604
604
|
Unlike Unit and Functional tests, integration tests have to be explicitly created under the 'test/integration' folder within your application. Rails provides a generator to create an integration test skeleton for you.
|
605
605
|
|
606
606
|
<shell>
|
607
|
-
$
|
607
|
+
$ rails generate integration_test user_flows
|
608
608
|
exists test/integration/
|
609
609
|
create test/integration/user_flows_test.rb
|
610
610
|
</shell>
|
data/lib/rails.rb
CHANGED
@@ -7,7 +7,7 @@ require 'active_support/core_ext/logger'
|
|
7
7
|
require 'rails/application'
|
8
8
|
require 'rails/version'
|
9
9
|
require 'rails/deprecation'
|
10
|
-
require 'rails/
|
10
|
+
require 'rails/log_subscriber'
|
11
11
|
require 'rails/ruby_version_check'
|
12
12
|
|
13
13
|
require 'active_support/railtie'
|
@@ -26,6 +26,9 @@ else
|
|
26
26
|
end
|
27
27
|
|
28
28
|
module Rails
|
29
|
+
autoload :Info, 'rails/info'
|
30
|
+
autoload :InfoController, 'rails/info_controller'
|
31
|
+
|
29
32
|
class << self
|
30
33
|
def application
|
31
34
|
@@application ||= nil
|
data/lib/rails/application.rb
CHANGED
@@ -1,9 +1,45 @@
|
|
1
1
|
require 'fileutils'
|
2
|
-
require 'rails/railties_path'
|
3
2
|
require 'rails/plugin'
|
4
3
|
require 'rails/engine'
|
5
4
|
|
6
5
|
module Rails
|
6
|
+
# In Rails 3.0, a Rails::Application object was introduced which is nothing more than
|
7
|
+
# an Engine but with the responsibility of coordinating the whole boot process.
|
8
|
+
#
|
9
|
+
# Opposite to Rails::Engine, you can only have one Rails::Application instance
|
10
|
+
# in your process and both Rails::Application and YourApplication::Application
|
11
|
+
# points to it.
|
12
|
+
#
|
13
|
+
# In other words, Rails::Application is Singleton and whenever you are accessing
|
14
|
+
# Rails::Application.config or YourApplication::Application.config, you are actually
|
15
|
+
# accessing YourApplication::Application.instance.config.
|
16
|
+
#
|
17
|
+
# == Initialization
|
18
|
+
#
|
19
|
+
# Rails::Application is responsible for executing all railties, engines and plugin
|
20
|
+
# initializers. Besides, it also executed some bootstrap initializers (check
|
21
|
+
# Rails::Application::Bootstrap) and finishing initializers, after all the others
|
22
|
+
# are executed (check Rails::Application::Finisher).
|
23
|
+
#
|
24
|
+
# == Configuration
|
25
|
+
#
|
26
|
+
# Besides providing the same configuration as Rails::Engine and Rails::Railtie,
|
27
|
+
# the application object has several specific configurations, for example
|
28
|
+
# "allow_concurrency", "cache_classes", "consider_all_requests_local", "filter_parameters",
|
29
|
+
# "logger", "metals", "reload_engines", "reload_plugins" and so forth.
|
30
|
+
#
|
31
|
+
# Check Rails::Application::Configuration to see them all.
|
32
|
+
#
|
33
|
+
# == Routes
|
34
|
+
#
|
35
|
+
# The application object is also responsible for holding the routes and reloading routes
|
36
|
+
# whenever the files change in development.
|
37
|
+
#
|
38
|
+
# == Middlewares and metals
|
39
|
+
#
|
40
|
+
# The Application is also responsible for building the middleware stack and setting up
|
41
|
+
# both application and engines metals.
|
42
|
+
#
|
7
43
|
class Application < Engine
|
8
44
|
autoload :Bootstrap, 'rails/application/bootstrap'
|
9
45
|
autoload :Configurable, 'rails/application/configurable'
|
@@ -15,7 +51,10 @@ module Rails
|
|
15
51
|
|
16
52
|
class << self
|
17
53
|
private :new
|
18
|
-
|
54
|
+
|
55
|
+
def configure(&block)
|
56
|
+
class_eval(&block)
|
57
|
+
end
|
19
58
|
|
20
59
|
def instance
|
21
60
|
if self == Rails::Application
|
@@ -42,23 +81,21 @@ module Rails
|
|
42
81
|
end
|
43
82
|
end
|
44
83
|
|
84
|
+
delegate :metal_loader, :to => :config
|
85
|
+
|
45
86
|
def require_environment!
|
46
87
|
environment = config.paths.config.environment.to_a.first
|
47
88
|
require environment if environment
|
48
89
|
end
|
49
90
|
|
50
91
|
def routes
|
51
|
-
::
|
92
|
+
@routes ||= ActionDispatch::Routing::RouteSet.new
|
52
93
|
end
|
53
94
|
|
54
95
|
def railties
|
55
96
|
@railties ||= Railties.new(config)
|
56
97
|
end
|
57
98
|
|
58
|
-
def metal_loader
|
59
|
-
@metal_laoder ||= MetalLoader.new
|
60
|
-
end
|
61
|
-
|
62
99
|
def routes_reloader
|
63
100
|
@routes_reloader ||= RoutesReloader.new
|
64
101
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require "active_support/notifications"
|
2
|
+
|
1
3
|
module Rails
|
2
4
|
class Application
|
3
5
|
module Bootstrap
|
@@ -49,20 +51,6 @@ module Rails
|
|
49
51
|
end
|
50
52
|
end
|
51
53
|
|
52
|
-
# Initialize rails subscriber on top of notifications.
|
53
|
-
initializer :initialize_subscriber do
|
54
|
-
require 'active_support/notifications'
|
55
|
-
|
56
|
-
if config.colorize_logging == false
|
57
|
-
Rails::Subscriber.colorize_logging = false
|
58
|
-
config.generators.colorize_logging = false
|
59
|
-
end
|
60
|
-
|
61
|
-
ActiveSupport::Notifications.subscribe do |*args|
|
62
|
-
Rails::Subscriber.dispatch(args)
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
54
|
initializer :set_clear_dependencies_hook do
|
67
55
|
unless config.cache_classes
|
68
56
|
ActionDispatch::Callbacks.after do
|
@@ -5,8 +5,8 @@ module Rails
|
|
5
5
|
class Configuration < ::Rails::Engine::Configuration
|
6
6
|
include ::Rails::Configuration::Deprecated
|
7
7
|
|
8
|
-
attr_accessor :allow_concurrency, :cache_classes, :cache_store,
|
9
|
-
:consider_all_requests_local, :dependency_loading,
|
8
|
+
attr_accessor :allow_concurrency, :cache_classes, :cache_store,
|
9
|
+
:cookie_secret, :consider_all_requests_local, :dependency_loading,
|
10
10
|
:filter_parameters, :log_level, :logger, :metals,
|
11
11
|
:plugins, :preload_frameworks, :reload_engines, :reload_plugins,
|
12
12
|
:serve_static_assets, :time_zone, :whiny_nils
|
@@ -14,12 +14,21 @@ module Rails
|
|
14
14
|
def initialize(*)
|
15
15
|
super
|
16
16
|
@allow_concurrency = false
|
17
|
-
@colorize_logging = true
|
18
17
|
@filter_parameters = []
|
19
18
|
@dependency_loading = true
|
20
19
|
@serve_static_assets = true
|
21
20
|
@time_zone = "UTC"
|
22
21
|
@consider_all_requests_local = true
|
22
|
+
@session_store = :cookie_store
|
23
|
+
@session_options = {}
|
24
|
+
end
|
25
|
+
|
26
|
+
def middleware
|
27
|
+
@middleware ||= default_middleware_stack
|
28
|
+
end
|
29
|
+
|
30
|
+
def metal_loader
|
31
|
+
@metal_loader ||= Rails::Application::MetalLoader.new
|
23
32
|
end
|
24
33
|
|
25
34
|
def paths
|
@@ -75,12 +84,67 @@ module Rails
|
|
75
84
|
end
|
76
85
|
|
77
86
|
def builtin_controller
|
78
|
-
File.
|
87
|
+
File.expand_path('../info_routes', __FILE__) if Rails.env.development?
|
79
88
|
end
|
80
89
|
|
81
90
|
def log_level
|
82
91
|
@log_level ||= Rails.env.production? ? :info : :debug
|
83
92
|
end
|
93
|
+
|
94
|
+
def colorize_logging
|
95
|
+
@colorize_logging
|
96
|
+
end
|
97
|
+
|
98
|
+
def colorize_logging=(val)
|
99
|
+
@colorize_logging = val
|
100
|
+
Rails::LogSubscriber.colorize_logging = val
|
101
|
+
self.generators.colorize_logging = val
|
102
|
+
end
|
103
|
+
|
104
|
+
def session_store(*args)
|
105
|
+
if args.empty?
|
106
|
+
case @session_store
|
107
|
+
when :disabled
|
108
|
+
nil
|
109
|
+
when :active_record_store
|
110
|
+
ActiveRecord::SessionStore
|
111
|
+
when Symbol
|
112
|
+
ActionDispatch::Session.const_get(@session_store.to_s.camelize)
|
113
|
+
else
|
114
|
+
@session_store
|
115
|
+
end
|
116
|
+
else
|
117
|
+
@session_store = args.shift
|
118
|
+
@session_options = args.shift || {}
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
protected
|
123
|
+
|
124
|
+
def session_options
|
125
|
+
return @session_options unless @session_store == :cookie_store
|
126
|
+
@session_options.merge(:secret => @cookie_secret)
|
127
|
+
end
|
128
|
+
|
129
|
+
def default_middleware_stack
|
130
|
+
ActionDispatch::MiddlewareStack.new.tap do |middleware|
|
131
|
+
middleware.use('::ActionDispatch::Static', lambda { Rails.public_path }, :if => lambda { serve_static_assets })
|
132
|
+
middleware.use('::Rack::Lock', :if => lambda { !allow_concurrency })
|
133
|
+
middleware.use('::Rack::Runtime')
|
134
|
+
middleware.use('::Rails::Rack::Logger')
|
135
|
+
middleware.use('::ActionDispatch::ShowExceptions', lambda { consider_all_requests_local })
|
136
|
+
middleware.use("::ActionDispatch::RemoteIp", lambda { action_dispatch.ip_spoofing_check }, lambda { action_dispatch.trusted_proxies })
|
137
|
+
middleware.use('::Rack::Sendfile', lambda { action_dispatch.x_sendfile_header })
|
138
|
+
middleware.use('::ActionDispatch::Callbacks', lambda { !cache_classes })
|
139
|
+
middleware.use('::ActionDispatch::Cookies')
|
140
|
+
middleware.use(lambda { session_store }, lambda { session_options })
|
141
|
+
middleware.use('::ActionDispatch::Flash', :if => lambda { session_store })
|
142
|
+
middleware.use(lambda { metal_loader.build_middleware(metals) }, :if => lambda { metal_loader.metals.any? })
|
143
|
+
middleware.use('ActionDispatch::ParamsParser')
|
144
|
+
middleware.use('::Rack::MethodOverride')
|
145
|
+
middleware.use('::ActionDispatch::Head')
|
146
|
+
end
|
147
|
+
end
|
84
148
|
end
|
85
149
|
end
|
86
|
-
end
|
150
|
+
end
|
@@ -23,7 +23,7 @@ module Rails
|
|
23
23
|
|
24
24
|
initializer :add_builtin_route do |app|
|
25
25
|
if Rails.env.development?
|
26
|
-
app.routes_reloader.paths << File.
|
26
|
+
app.routes_reloader.paths << File.expand_path('../../info_routes.rb', __FILE__)
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
@@ -31,7 +31,6 @@ module Rails
|
|
31
31
|
app
|
32
32
|
end
|
33
33
|
|
34
|
-
# Fires the user-supplied after_initialize block (config.after_initialize)
|
35
34
|
initializer :after_initialize do
|
36
35
|
config.after_initialize_blocks.each do |block|
|
37
36
|
block.call(self)
|
@@ -46,4 +45,4 @@ module Rails
|
|
46
45
|
end
|
47
46
|
end
|
48
47
|
end
|
49
|
-
end
|
48
|
+
end
|
@@ -34,7 +34,7 @@ module Rails
|
|
34
34
|
Dir.glob("#{path}/**/*.rb").sort.each do |metal_path|
|
35
35
|
metal = metal_path.sub(matcher, '\1').to_sym
|
36
36
|
next unless list.include?(metal) || list.include?(:all)
|
37
|
-
require_dependency metal
|
37
|
+
require_dependency metal.to_s
|
38
38
|
metals << metal
|
39
39
|
end
|
40
40
|
end
|
@@ -12,7 +12,6 @@ module Rails
|
|
12
12
|
add_filter { |line| line.sub('./', '/') } # for tests
|
13
13
|
|
14
14
|
add_gem_filters
|
15
|
-
add_bundler_filters
|
16
15
|
|
17
16
|
add_silencer { |line| !APP_DIRS.any? { |dir| line =~ /^#{dir}/ } }
|
18
17
|
end
|
@@ -27,16 +26,6 @@ module Rails
|
|
27
26
|
}
|
28
27
|
end
|
29
28
|
end
|
30
|
-
|
31
|
-
def add_bundler_filters
|
32
|
-
return unless defined? Bundler
|
33
|
-
add_filter { |line|
|
34
|
-
line.sub(%r{vendor/gems/[^/]+/[^/]+/gems/([^/]+)-([0-9.]+)/(.*)}, '\1 (\2) \3')
|
35
|
-
}
|
36
|
-
add_filter { |line|
|
37
|
-
line.sub(%r{vendor/gems/[^/]+/[^/]+/dirs/([^/]+)/(.*)}, '\1 \2')
|
38
|
-
}
|
39
|
-
end
|
40
29
|
end
|
41
30
|
|
42
31
|
# For installing the BacktraceCleaner in the test/unit
|
data/lib/rails/commands.rb
CHANGED
@@ -30,13 +30,16 @@ when 'g', 'generate'
|
|
30
30
|
require 'rails/commands/generate'
|
31
31
|
when 'c', 'console'
|
32
32
|
require 'rails/commands/console'
|
33
|
-
require
|
33
|
+
require ENV_PATH
|
34
34
|
Rails::Console.start(Rails::Application)
|
35
35
|
when 's', 'server'
|
36
|
-
require APP_PATH
|
37
36
|
require 'rails/commands/server'
|
38
|
-
|
39
|
-
Rails::Server.
|
37
|
+
# Initialize the server first, so environment options are set
|
38
|
+
server = Rails::Server.new
|
39
|
+
require APP_PATH
|
40
|
+
|
41
|
+
Dir.chdir(Rails::Application.root)
|
42
|
+
server.start
|
40
43
|
when 'db', 'dbconsole'
|
41
44
|
require 'rails/commands/dbconsole'
|
42
45
|
require APP_PATH
|
@@ -58,8 +61,6 @@ when 'plugin'
|
|
58
61
|
require 'rails/commands/plugin'
|
59
62
|
when 'runner'
|
60
63
|
require 'rails/commands/runner'
|
61
|
-
require ENV_PATH
|
62
|
-
|
63
64
|
|
64
65
|
when '--help', '-h'
|
65
66
|
puts HELP_TEXT
|
@@ -19,7 +19,7 @@ module Rails
|
|
19
19
|
opt.banner = "Usage: console [environment] [options]"
|
20
20
|
opt.on('-s', '--sandbox', 'Rollback database modifications on exit.') { |v| options[:sandbox] = v }
|
21
21
|
opt.on("--debugger", 'Enable ruby-debugging for the console.') { |v| options[:debugger] = v }
|
22
|
-
opt.on('--irb') { |v| abort '--irb option is no longer supported. Invoke `/your/choice/of/ruby script/console` instead' }
|
22
|
+
opt.on('--irb', "DEPRECATED: Invoke `/your/choice/of/ruby script/rails console` instead") { |v| abort '--irb option is no longer supported. Invoke `/your/choice/of/ruby script/rails console` instead' }
|
23
23
|
opt.parse!(ARGV)
|
24
24
|
end
|
25
25
|
|
@@ -91,6 +91,18 @@ module Rails
|
|
91
91
|
args << config['database']
|
92
92
|
|
93
93
|
exec(find_cmd('sqlite3'), *args)
|
94
|
+
|
95
|
+
when "oracle", "oracle_enhanced"
|
96
|
+
logon = ""
|
97
|
+
|
98
|
+
if config['username']
|
99
|
+
logon = config['username']
|
100
|
+
logon << "/#{config['password']}" if config['password'] && include_password
|
101
|
+
logon << "@#{config['database']}" if config['database']
|
102
|
+
end
|
103
|
+
|
104
|
+
exec(find_cmd('sqlplus'), logon)
|
105
|
+
|
94
106
|
else
|
95
107
|
abort "Unknown command-line client for #{config['database']}. Submit a Rails patch to add support!"
|
96
108
|
end
|
@@ -1,5 +1,5 @@
|
|
1
|
-
if ARGV.
|
2
|
-
puts "Usage: benchmarker [times] 'Person.expensive_way' 'Person.another_expensive_way' ..."
|
1
|
+
if [nil, "-h", "--help"].include?(ARGV.first)
|
2
|
+
puts "Usage: rails benchmarker [times] 'Person.expensive_way' 'Person.another_expensive_way' ..."
|
3
3
|
exit 1
|
4
4
|
end
|
5
5
|
|
@@ -1,5 +1,5 @@
|
|
1
|
-
if ARGV.
|
2
|
-
$stderr.puts "Usage: profiler 'Person.expensive_method(10)' [times] [flat|graph|graph_html]"
|
1
|
+
if [nil, "-h", "--help"].include?(ARGV.first)
|
2
|
+
$stderr.puts "Usage: rails profiler 'Person.expensive_method(10)' [times] [flat|graph|graph_html]"
|
3
3
|
exit(1)
|
4
4
|
end
|
5
5
|
|