diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2006-01-29 00:37:39 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2006-01-29 00:37:39 +0000 |
commit | 01b1a8772928fbf31180341356981b95d0581413 (patch) | |
tree | 16d9939a713b79c91f5a14c799fb4e12790ecfff /actionpack/lib | |
parent | 94046542e274f76ec9d31721a73a19e4b651fbfc (diff) | |
download | rails-01b1a8772928fbf31180341356981b95d0581413.tar.gz rails-01b1a8772928fbf31180341356981b95d0581413.tar.bz2 rails-01b1a8772928fbf31180341356981b95d0581413.zip |
Added reusable reloading support through the inclusion of the Relodable module that all subclasses of ActiveRecord::Base, ActiveRecord::Observer, ActiveController::Base, and ActionMailer::Base automatically gets [DHH]. Added auto-loading support for classes in modules, so Conductor::Migration will look for conductor/migration.rb and Conductor::Database::Settings will look for conductor/database/settings.rb [Nicholas Seckar]. Refactored extensions to module, class, and object in active support [DHH]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3493 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack/lib')
-rwxr-xr-x | actionpack/lib/action_controller/base.rb | 7 | ||||
-rw-r--r-- | actionpack/lib/action_controller/layout.rb | 9 | ||||
-rw-r--r-- | actionpack/lib/action_controller/test_process.rb | 7 |
3 files changed, 19 insertions, 4 deletions
diff --git a/actionpack/lib/action_controller/base.rb b/actionpack/lib/action_controller/base.rb index 7f8ff5ed09..43f948e73d 100755 --- a/actionpack/lib/action_controller/base.rb +++ b/actionpack/lib/action_controller/base.rb @@ -224,6 +224,13 @@ module ActionController #:nodoc: # FCGI.each_cgi{ |cgi| WeblogController.process_cgi(cgi) } class Base DEFAULT_RENDER_STATUS_CODE = "200 OK" + + # Action Controller subclasses should be reloaded by the dispatcher in Rails + # when Dependencies.mechanism = :load. + def self.inherited(child) #:nodoc: + child.send :include, Reloadable + super + end # Determines whether the view has access to controller internals @request, @response, @session, and @template. # By default, it does. diff --git a/actionpack/lib/action_controller/layout.rb b/actionpack/lib/action_controller/layout.rb index cc153c45a7..f2a5b97bf1 100644 --- a/actionpack/lib/action_controller/layout.rb +++ b/actionpack/lib/action_controller/layout.rb @@ -1,16 +1,16 @@ module ActionController #:nodoc: module Layout #:nodoc: - def self.append_features(base) - super + def self.included(base) + base.extend(ClassMethods) base.class_eval do alias_method :render_with_no_layout, :render alias_method :render, :render_with_a_layout class << self alias_method :inherited_without_layout, :inherited + alias_method :inherited, :inherited_with_layout end end - base.extend(ClassMethods) end # Layouts reverse the common pattern of including shared headers and footers in many templates to isolate changes in @@ -172,8 +172,9 @@ module ActionController #:nodoc: end private - def inherited(child) + def inherited_with_layout(child) inherited_without_layout(child) + child.send :include, Reloadable layout_match = child.name.underscore.sub(/_controller$/, '') child.layout(layout_match) unless layout_list.grep(%r{layouts/#{layout_match}\.[a-z][0-9a-z]*$}).empty? end diff --git a/actionpack/lib/action_controller/test_process.rb b/actionpack/lib/action_controller/test_process.rb index 289ab3d5e7..caba4bfb39 100644 --- a/actionpack/lib/action_controller/test_process.rb +++ b/actionpack/lib/action_controller/test_process.rb @@ -333,6 +333,13 @@ module ActionController #:nodoc: end end + def build_request_uri(action, parameters) + options = @controller.send(:rewrite_options, parameters) + options.update(:only_path => true, :action => action) + url = ActionController::UrlRewriter.new(@request, parameters) + @request.set_REQUEST_URI(url.rewrite(options)) + end + def session @response.session end |