Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

BACKWARDS INCOMPATIBLE: Renamed application.rb to application_control…

…ler.rb and removed all the special casing that was in place to support the former. You must do this rename in your own application when you upgrade to this version [DHH]
  • Loading branch information...
commit fcce1f17eaf9993b0210fe8e2a8117b61a1f0f69 1 parent 4b33fae
@dhh dhh authored
View
9 actionpack/lib/action_controller/dispatcher.rb
@@ -12,14 +12,7 @@ def define_dispatcher_callbacks(cache_classes)
after_dispatch :cleanup_application
end
- # Common callbacks
- to_prepare :load_application_controller do
- begin
- require_dependency 'application' unless defined?(::ApplicationController)
- rescue LoadError => error
- raise unless error.message =~ /application\.rb/
- end
- end
+ to_prepare(:load_application_controller) { ApplicationController }
if defined?(ActiveRecord)
after_dispatch :checkin_connections
View
6 activesupport/lib/active_support/dependencies.rb
@@ -314,11 +314,7 @@ def loadable_constants_for_path(path, bases = load_paths)
nesting = nesting[1..-1] if nesting && nesting[0] == ?/
next if nesting.blank?
- [
- nesting.camelize,
- # Special case: application.rb might define ApplicationControlller.
- ('ApplicationController' if nesting == 'application')
- ]
+ [ nesting.camelize ]
end.flatten.compact.uniq
end
View
5 railties/CHANGELOG
@@ -1,3 +1,8 @@
+*2.3.0/3.0*
+
+* BACKWARDS INCOMPATIBLE: Renamed application.rb to application_controller.rb and removed all the special casing that was in place to support the former. You must do this rename in your own application when you upgrade to this version [DHH]
+
+
*2.2.1 [RC2] (November 14th, 2008)*
* Fixed plugin generator so that generated unit tests would subclass ActiveSupport::TestCase, also introduced a helper script to reduce the needed require statements #1137 [Mathias Meyer]
View
2  railties/Rakefile
@@ -184,7 +184,7 @@ task :copy_html_files do
end
task :copy_application do
- cp "helpers/application.rb", "#{PKG_DESTINATION}/app/controllers/application.rb"
+ cp "helpers/application_controller.rb", "#{PKG_DESTINATION}/app/controllers/application_controller.rb"
cp "helpers/application_helper.rb", "#{PKG_DESTINATION}/app/helpers/application_helper.rb"
end
View
2  railties/doc/guides/source/layouts_and_rendering.txt
@@ -313,7 +313,7 @@ With those declarations, the +inventory+ layout would be used only for the +inde
Layouts are shared downwards in the hierarchy, and more specific layouts always override more general ones. For example:
-+application.rb+:
++application_controller.rb+:
[source, ruby]
-------------------------------------------------------
View
0  railties/helpers/application.rb → railties/helpers/application_controller.rb
File renamed without changes
View
3  railties/lib/rails_generator/generators/applications/app/app_generator.rb
@@ -47,7 +47,8 @@ def manifest
m.file "README", "README"
# Application
- m.template "helpers/application.rb", "app/controllers/application.rb", :assigns => { :app_name => @app_name, :app_secret => md5.hexdigest }
+ m.template "helpers/application_controller.rb", "app/controllers/application_controller.rb", :assigns => {
+ :app_name => @app_name, :app_secret => md5.hexdigest }
m.template "helpers/application_helper.rb", "app/helpers/application_helper.rb"
m.template "helpers/test_helper.rb", "test/test_helper.rb"
m.template "helpers/performance_test.rb", "test/performance/browsing_test.rb"

30 comments on commit fcce1f1

@ncr

Saw that coming ;)

@tilsammans

Makes sense for 3.0, not sure about 2.3 though.

@ryanb

Maybe still load application.rb if it exists and spit out a deprecation notice? That way there can be a transitioning version.

@topfunky

I remember way back when…“ApplicationController” was just called “Application.”

Those were the days.

@drnic

+1 ryanb

@thibaudgg

great!

@sethladd

This should be a 3.0 change, imo.

@foca

+1 ryanb phase this change in gradually =)

@spicycode

Finally!

@jasontorres

that makes more sense.

@adkron

+1 for ryanb. Any big api change should at lease get some deprecation warning and isn’t this a little much for a minor release.

@lifo
Collaborator

We haven’t really decided if 2.2.next will be 2.3 or 3.0. Also, ‘rake rails:update’ task should/will take care of renaming application.rb → application_controller.rb.

@boblmartens

Isn’t 2.3 going to be released as 3.0? I thought that is how it worked. 1.2.x lead to 2.0.x … so 2.2.x will give way to 3.0.x!

Regardless, keep up the good work!

@radar

I remember when this was being discussed. Glad to see it finally making its way into core!

@NZKoz
Owner

When this gets pushed into a release we’ll naturally take care to make the upgrade path as smooth as possible.

However, if you’re tracking edge right now, just after a branch, you’re braver than I am :)

@labria

At last!

@divineforest

1+ for ranaming

@geoffgarside

Anyone else getting an ActionController::MethodNotAllowed when visiting / since this?

@geoffgarside

nm its unrelated, seems map.root is generating me a POST rather than a GET route :S

@ryanb

I still think a transitioning version (where application.rb is loaded and deprecated) would be nice. Not for development (it’s easy enough to rename a file), but for deployment in production. Now you’ll have to push this change to the server the exact same time you upgrade Rails. Having a stepping-stone version where both application.rb and application_controller.rb work would ease this transition.

@ryanb

After thinking about it a bit more I suppose it’s not as big of an issue. It’s easy enough to make a second branch, change the gem version in the config, fix all the problems, and then deploy that all to the server in one go.

@NZKoz
Owner

@ryanb: 2.2.something could end up being the transitioning version you’re talking about, or we could add the deprecation / warnings into master.

Again, this isn’t how we’re going to ship anything, and chasing edge is risky, especially this soon after a branch where we have a bunch of features / patches we pushed out as ‘too risky’.

@NZKoz
Owner

@topfunky: oh yeah, well I remember abstract_application_controller.rb. Take that!

@lb

abstract_application_controller.rb! whoa

@cmrichards

My only problem with calling it application_controller is that it indicates that it is a controller in MVC, which it isn’t. It has features that all other controllers share.

@ryanb

@evilgeenius the class has been called ApplicationController for quite some time. This patch just makes the file name consistent with the class name. Consistency is a good thing.

@jamieorc

huzzah!

@cmrichards

@ryanb i concede

@whatcould

With this commit you’ll need to update your phusion passenger — but it might be better to hack the solution yourself than try to be fancy and update the gem.

See my note in comments at http://ryandaigle.com/articles/2008/11/19/what-s-new-in-edge-rails-application-rb-duality-is-no-more

Please sign in to comment.
Something went wrong with that request. Please try again.