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
|
@@ -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
|
|