Permalink
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...
dhh committed Nov 17, 2008
1 parent 4b33fae commit fcce1f17eaf9993b0210fe8e2a8117b61a1f0f69
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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]
-------------------------------------------------------
@@ -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

This comment has been minimized.

Show comment
Hide comment
@ncr

ncr Nov 17, 2008

Contributor

Saw that coming ;)

Contributor

ncr replied Nov 17, 2008

Saw that coming ;)

@tilsammans

This comment has been minimized.

Show comment
Hide comment
@tilsammans

tilsammans Nov 17, 2008

Contributor

Makes sense for 3.0, not sure about 2.3 though.

Contributor

tilsammans replied Nov 17, 2008

Makes sense for 3.0, not sure about 2.3 though.

@ryanb

This comment has been minimized.

Show comment
Hide comment
@ryanb

ryanb Nov 17, 2008

Contributor

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

Contributor

ryanb replied Nov 17, 2008

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

@topfunky

This comment has been minimized.

Show comment
Hide comment
@topfunky

topfunky Nov 17, 2008

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

Those were the days.

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

Those were the days.

@drnic

This comment has been minimized.

Show comment
Hide comment
@drnic

drnic Nov 17, 2008

Contributor

+1 ryanb

Contributor

drnic replied Nov 17, 2008

+1 ryanb

@thibaudgg

This comment has been minimized.

Show comment
Hide comment
@thibaudgg

thibaudgg Nov 17, 2008

Contributor

great!

Contributor

thibaudgg replied Nov 17, 2008

great!

@jamesgolick

This comment has been minimized.

Show comment
Hide comment
@jamesgolick

jamesgolick Nov 17, 2008

Contributor

yay!

Contributor

jamesgolick replied Nov 17, 2008

yay!

@sethladd

This comment has been minimized.

Show comment
Hide comment
@sethladd

sethladd Nov 17, 2008

This should be a 3.0 change, imo.

This should be a 3.0 change, imo.

@foca

This comment has been minimized.

Show comment
Hide comment
@foca

foca Nov 17, 2008

Contributor

+1 ryanb
phase this change in gradually =)

Contributor

foca replied Nov 17, 2008

+1 ryanb
phase this change in gradually =)

@spicycode

This comment has been minimized.

Show comment
Hide comment

Finally!

@jasontorres

This comment has been minimized.

Show comment
Hide comment
@jasontorres

jasontorres Nov 18, 2008

that makes more sense.

that makes more sense.

@adkron

This comment has been minimized.

Show comment
Hide comment
@adkron

adkron Nov 18, 2008

Contributor

+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.

Contributor

adkron replied Nov 18, 2008

+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

This comment has been minimized.

Show comment
Hide comment
@lifo

lifo Nov 18, 2008

Member

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.

Member

lifo replied Nov 18, 2008

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

This comment has been minimized.

Show comment
Hide comment
@boblmartens

boblmartens Nov 18, 2008

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!

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

This comment has been minimized.

Show comment
Hide comment
@radar

radar Nov 18, 2008

Contributor

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

Contributor

radar replied Nov 18, 2008

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

@NZKoz

This comment has been minimized.

Show comment
Hide comment
@NZKoz

NZKoz Nov 18, 2008

Member

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 :)

Member

NZKoz replied Nov 18, 2008

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

This comment has been minimized.

Show comment
Hide comment
@labria

labria Nov 18, 2008

Contributor

At last!

Contributor

labria replied Nov 18, 2008

At last!

@divineforest

This comment has been minimized.

Show comment
Hide comment
@divineforest

divineforest Nov 18, 2008

Contributor

1+ for ranaming

Contributor

divineforest replied Nov 18, 2008

1+ for ranaming

@geoffgarside

This comment has been minimized.

Show comment
Hide comment
@geoffgarside

geoffgarside Nov 18, 2008

Contributor

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

Contributor

geoffgarside replied Nov 18, 2008

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

@geoffgarside

This comment has been minimized.

Show comment
Hide comment
@geoffgarside

geoffgarside Nov 18, 2008

Contributor

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

Contributor

geoffgarside replied Nov 18, 2008

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

@ryanb

This comment has been minimized.

Show comment
Hide comment
@ryanb

ryanb Nov 18, 2008

Contributor

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.

Contributor

ryanb replied Nov 18, 2008

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

This comment has been minimized.

Show comment
Hide comment
@ryanb

ryanb Nov 18, 2008

Contributor

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.

Contributor

ryanb replied Nov 18, 2008

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

This comment has been minimized.

Show comment
Hide comment
@NZKoz

NZKoz Nov 18, 2008

Member

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

Member

NZKoz replied Nov 18, 2008

@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

This comment has been minimized.

Show comment
Hide comment
@NZKoz

NZKoz Nov 18, 2008

Member

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

Member

NZKoz replied Nov 18, 2008

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

@lb

This comment has been minimized.

Show comment
Hide comment
@lb

lb Nov 18, 2008

abstract_application_controller.rb! whoa

lb replied Nov 18, 2008

abstract_application_controller.rb! whoa

@cmrichards

This comment has been minimized.

Show comment
Hide comment
@cmrichards

cmrichards Nov 19, 2008

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.

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

This comment has been minimized.

Show comment
Hide comment
@ryanb

ryanb Nov 19, 2008

Contributor

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

Contributor

ryanb replied Nov 19, 2008

@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

This comment has been minimized.

Show comment
Hide comment

huzzah!

@cmrichards

This comment has been minimized.

Show comment
Hide comment
@cmrichards

cmrichards Nov 20, 2008

@ryanb i concede

@ryanb i concede

@whatcould

This comment has been minimized.

Show comment
Hide comment
@whatcould

whatcould Nov 23, 2008

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

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.