public
Description: Ruby on Rails
Homepage: http://rubyonrails.org
Clone URL: git://github.com/rails/rails.git
Use autoload instead of explicit requires for ActionController
josh (author)
Sun Nov 23 14:35:13 -0800 2008
commit  31ce92f7b5784bc5b6a441e88cd734c7b8b1c58f
tree    ec452cb5dd933f0fc89f9b230a35f70528145950
parent  6de1060eb555b5053f7d95269ceb23fce04e0523
...
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
 
 
 
 
 
 
58
59
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
 
 
 
78
 
 
 
 
 
 
 
 
 
 
 
 
 
 
...
32
33
34
 
35
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
37
38
39
40
41
42
 
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
0
@@ -32,47 +32,63 @@ rescue LoadError
0
 end
0
 
0
 $:.unshift "#{File.dirname(__FILE__)}/action_controller/vendor/html-scanner"
0
-require 'action_controller/vendor/rack'
0
 
0
-require 'action_controller/base'
0
-require 'action_controller/request'
0
-require 'action_controller/rescue'
0
-require 'action_controller/benchmarking'
0
-require 'action_controller/flash'
0
-require 'action_controller/filters'
0
-require 'action_controller/layout'
0
-require 'action_controller/mime_responds'
0
-require 'action_controller/helpers'
0
-require 'action_controller/cookies'
0
-require 'action_controller/cgi_process'
0
-require 'action_controller/caching'
0
-require 'action_controller/verification'
0
-require 'action_controller/streaming'
0
-require 'action_controller/session_management'
0
-require 'action_controller/http_authentication'
0
-require 'action_controller/rack_process'
0
-require 'action_controller/record_identifier'
0
-require 'action_controller/request_forgery_protection'
0
-require 'action_controller/headers'
0
-require 'action_controller/translation'
0
+module ActionController
0
+  # TODO: Review explicit to see if they will automatically be handled by
0
+  # the initilizer if they are really needed.
0
+  def self.load_all!
0
+    [Base, CgiRequest, CgiResponse, RackRequest, RackRequest, Http::Headers, UrlRewriter, UrlWriter]
0
+  end
0
 
0
-require 'action_view'
0
+  autoload :AbstractRequest, 'action_controller/request'
0
+  autoload :AbstractResponse, 'action_controller/response'
0
+  autoload :Base, 'action_controller/base'
0
+  autoload :Benchmarking, 'action_controller/benchmarking'
0
+  autoload :Caching, 'action_controller/caching'
0
+  autoload :CgiRequest, 'action_controller/cgi_process'
0
+  autoload :CgiResponse, 'action_controller/cgi_process'
0
+  autoload :Cookies, 'action_controller/cookies'
0
+  autoload :Dispatcher, 'action_controller/dispatcher'
0
+  autoload :Filters, 'action_controller/filters'
0
+  autoload :Flash, 'action_controller/flash'
0
+  autoload :Helpers, 'action_controller/helpers'
0
+  autoload :HttpAuthentication, 'action_controller/http_authentication'
0
+  autoload :IntegrationTest, 'action_controller/integration'
0
+  autoload :Layout, 'action_controller/layout'
0
+  autoload :MimeResponds, 'action_controller/mime_responds'
0
+  autoload :PolymorphicRoutes, 'action_controller/polymorphic_routes'
0
+  autoload :RackRequest, 'action_controller/rack_process'
0
+  autoload :RackResponse, 'action_controller/rack_process'
0
+  autoload :RecordIdentifier, 'action_controller/record_identifier'
0
+  autoload :RequestForgeryProtection, 'action_controller/request_forgery_protection'
0
+  autoload :Rescue, 'action_controller/rescue'
0
+  autoload :Resources, 'action_controller/resources'
0
+  autoload :Routing, 'action_controller/routing'
0
+  autoload :SessionManagement, 'action_controller/session_management'
0
+  autoload :StatusCodes, 'action_controller/status_codes'
0
+  autoload :Streaming, 'action_controller/streaming'
0
+  autoload :TestCase, 'action_controller/test_case'
0
+  autoload :TestProcess, 'action_controller/test_process'
0
+  autoload :Translation, 'action_controller/translation'
0
+  autoload :UrlRewriter, 'action_controller/url_rewriter'
0
+  autoload :UrlWriter, 'action_controller/url_rewriter'
0
+  autoload :Verification, 'action_controller/verification'
0
 
0
-ActionController::Base.class_eval do
0
-  include ActionController::Flash
0
-  include ActionController::Filters
0
-  include ActionController::Layout
0
-  include ActionController::Benchmarking
0
-  include ActionController::Rescue
0
-  include ActionController::MimeResponds
0
-  include ActionController::Helpers
0
-  include ActionController::Cookies
0
-  include ActionController::Caching
0
-  include ActionController::Verification
0
-  include ActionController::Streaming
0
-  include ActionController::SessionManagement
0
-  include ActionController::HttpAuthentication::Basic::ControllerMethods
0
-  include ActionController::RecordIdentifier
0
-  include ActionController::RequestForgeryProtection
0
-  include ActionController::Translation
0
+  module Http
0
+    autoload :Headers, 'action_controller/headers'
0
+  end
0
 end
0
+
0
+class CGI
0
+  class Session
0
+    autoload :ActiveRecordStore, 'action_controller/session/active_record_store'
0
+    autoload :CookieStore, 'action_controller/session/cookie_store'
0
+    autoload :DRbStore, 'action_controller/session/drb_store'
0
+    autoload :MemCacheStore, 'action_controller/session/mem_cache_store'
0
+  end
0
+end
0
+
0
+autoload :Mime, 'action_controller/mime_type'
0
+autoload :Rack, 'action_controller/vendor/rack'
0
+
0
+ActionController.load_all!
...
1
2
3
4
5
6
7
8
9
10
...
1332
1333
1334
 
 
 
 
 
 
 
1335
...
 
 
 
 
 
 
 
1
2
3
...
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
0
@@ -1,10 +1,3 @@
0
-require 'action_controller/mime_type'
0
-require 'action_controller/request'
0
-require 'action_controller/response'
0
-require 'action_controller/routing'
0
-require 'action_controller/resources'
0
-require 'action_controller/url_rewriter'
0
-require 'action_controller/status_codes'
0
 require 'action_view'
0
 require 'drb'
0
 require 'set'
0
@@ -1332,4 +1325,11 @@ module ActionController #:nodoc:
0
         close_session
0
       end
0
   end
0
+
0
+  Base.class_eval do
0
+    include Flash, Filters, Layout, Benchmarking, Rescue, MimeResponds, Helpers
0
+    include Cookies, Caching, Verification, Streaming
0
+    include SessionManagement, HttpAuthentication::Basic::ControllerMethods
0
+    include RecordIdentifier, RequestForgeryProtection, Translation
0
+  end
0
 end
...
2
3
4
5
6
7
8
9
10
11
12
13
14
...
31
32
33
 
 
 
 
 
 
34
35
36
...
63
64
65
66
67
 
68
69
70
71
72
73
 
...
2
3
4
 
 
 
 
 
 
 
5
6
7
...
24
25
26
27
28
29
30
31
32
33
34
35
...
62
63
64
 
 
65
66
67
68
69
 
70
71
0
@@ -2,13 +2,6 @@ require 'fileutils'
0
 require 'uri'
0
 require 'set'
0
 
0
-require 'action_controller/caching/pages'
0
-require 'action_controller/caching/actions'
0
-require 'action_controller/caching/sql_cache'
0
-require 'action_controller/caching/sweeping'
0
-require 'action_controller/caching/fragments'
0
-
0
-
0
 module ActionController #:nodoc:
0
   # Caching is a cheap way of speeding up slow applications by keeping the result of calculations, renderings, and database calls
0
   # around for subsequent requests. Action Controller affords you three approaches in varying levels of granularity: Page, Action, Fragment.
0
@@ -31,6 +24,12 @@ module ActionController #:nodoc:
0
   #   ActionController::Base.cache_store = :mem_cache_store, "localhost"
0
   #   ActionController::Base.cache_store = MyOwnStore.new("parameter")
0
   module Caching
0
+    autoload :Actions, 'action_controller/caching/actions'
0
+    autoload :Fragments, 'action_controller/caching/fragments'
0
+    autoload :Pages, 'action_controller/caching/pages'
0
+    autoload :SqlCache, 'action_controller/caching/sql_cache'
0
+    autoload :Sweeping, 'action_controller/caching/sweeping'
0
+
0
     def self.included(base) #:nodoc:
0
       base.class_eval do
0
         @@cache_store = nil
0
@@ -63,10 +62,9 @@ module ActionController #:nodoc:
0
         end
0
       end
0
 
0
-
0
-    private    
0
+    private
0
       def cache_configured?
0
         self.class.cache_configured?
0
       end
0
   end
0
-end
0
\ No newline at end of file
0
+end
...
1
2
3
4
5
...
1
 
2
3
4
0
@@ -1,5 +1,4 @@
0
 require 'action_controller/cgi_ext'
0
-require 'action_controller/session/cookie_store'
0
 
0
 module ActionController #:nodoc:
0
   class Base
...
1
2
3
4
5
6
7
...
 
 
 
 
1
2
3
0
@@ -1,7 +1,3 @@
0
-require 'action_controller/test_case'
0
-require 'action_controller/dispatcher'
0
-require 'action_controller/test_process'
0
-
0
 require 'stringio'
0
 require 'uri'
0
 
...
1
2
3
4
...
 
1
2
3
0
@@ -1,4 +1,3 @@
0
-require 'action_controller/integration'
0
 require 'active_support/testing/performance'
0
 require 'active_support/testing/default'
0
 
...
1
2
3
4
5
...
1
 
2
3
4
0
@@ -1,5 +1,4 @@
0
 require 'action_controller/cgi_ext'
0
-require 'action_controller/session/cookie_store'
0
 
0
 module ActionController #:nodoc:
0
   class RackRequest < AbstractRequest #:nodoc:
...
1
2
3
4
5
...
1
 
2
3
4
0
@@ -1,5 +1,4 @@
0
 require 'optparse'
0
-require 'action_controller/integration'
0
 
0
 module ActionController
0
   class RequestProfiler
...
669
670
671
672
673
674
675
...
669
670
671
 
 
 
 
0
@@ -669,7 +669,3 @@ module ActionController
0
       end
0
   end
0
 end
0
-
0
-class ActionController::Routing::RouteSet::Mapper
0
-  include ActionController::Resources
0
-end
...
1
2
3
4
5
6
...
1
2
 
3
4
5
0
@@ -1,6 +1,5 @@
0
 require 'cgi'
0
 require 'uri'
0
-require 'action_controller/polymorphic_routes'
0
 require 'action_controller/routing/optimisations'
0
 require 'action_controller/routing/routing_ext'
0
 require 'action_controller/routing/route'
...
7
8
9
 
 
10
11
12
...
7
8
9
10
11
12
13
14
0
@@ -7,6 +7,8 @@ module ActionController
0
       # Mapper instances have relatively few instance methods, in order to avoid
0
       # clashes with named routes.
0
       class Mapper #:doc:
0
+        include ActionController::Resources
0
+
0
         def initialize(set) #:nodoc:
0
           @set = set
0
         end
...
1
2
3
4
5
6
7
8
9
10
...
 
 
 
 
 
 
 
1
2
3
0
@@ -1,10 +1,3 @@
0
-require 'action_controller/session/cookie_store'
0
-require 'action_controller/session/drb_store'
0
-require 'action_controller/session/mem_cache_store'
0
-if Object.const_defined?(:ActiveRecord)
0
-  require 'action_controller/session/active_record_store'
0
-end
0
-
0
 module ActionController #:nodoc:
0
   module SessionManagement #:nodoc:
0
     def self.included(base)
...
1
2
3
4
5
...
 
 
1
2
3
0
@@ -1,5 +1,3 @@
0
-require 'action_controller/test_case'
0
-
0
 module ActionView
0
   class TestCase < ActiveSupport::TestCase
0
     include ActionController::TestCase::Assertions
...
1
2
3
4
5
6
7
...
1
2
3
 
4
5
6
0
@@ -1,7 +1,6 @@
0
 # These tests exercise CGI::Session::ActiveRecordStore, so you're going to
0
 # need AR in a sibling directory to AP and have SQLite installed.
0
 require 'active_record_unit'
0
-require 'action_controller/session/active_record_store'
0
 
0
 module CommonActiveRecordStoreTests
0
   def test_basics
...
1
2
3
4
5
...
1
 
2
3
4
0
@@ -1,5 +1,4 @@
0
 require 'abstract_unit'
0
-require 'action_controller/cgi_process'
0
 
0
 class BaseCgiTest < Test::Unit::TestCase
0
   def setup
...
2
3
4
5
6
7
8
9
...
2
3
4
 
 
5
6
7
0
@@ -2,8 +2,6 @@ require 'abstract_unit'
0
 
0
 uses_mocha 'dispatcher tests' do
0
 
0
-require 'action_controller/dispatcher'
0
-
0
 class DispatcherTest < Test::Unit::TestCase
0
   Dispatcher = ActionController::Dispatcher
0
 
...
1
2
3
4
5
6
...
1
 
 
2
3
4
0
@@ -1,6 +1,4 @@
0
 require 'abstract_unit'
0
-require 'action_controller/integration'
0
-require 'action_controller/routing'
0
 
0
 uses_mocha 'integration' do
0
 
...
1
2
3
4
5
6
...
1
 
 
2
3
4
0
@@ -1,6 +1,4 @@
0
 require 'abstract_unit'
0
-require 'action_controller/integration'
0
-require 'action_controller/routing'
0
 
0
 unless defined? ApplicationController
0
   class ApplicationController < ActionController::Base
...
1
2
3
4
5
...
1
 
2
3
4
0
@@ -1,5 +1,4 @@
0
 require 'abstract_unit'
0
-require 'action_controller/rack_process'
0
 
0
 class BaseRackTest < Test::Unit::TestCase
0
   def setup
...
1
2
3
4
5
...
1
 
2
3
4
0
@@ -1,5 +1,4 @@
0
 require 'abstract_unit'
0
-require 'action_controller/integration'
0
 
0
 class RequestTest < ActiveSupport::TestCase
0
   def setup
...
1
2
3
4
5
6
...
1
2
 
3
4
5
0
@@ -1,6 +1,5 @@
0
 require 'abstract_unit'
0
 require 'controller/fake_controllers'
0
-require 'action_controller/routing'
0
 
0
 class MilestonesController < ActionController::Base
0
   def index() head :ok end
...
1
2
3
4
5
6
7
...
1
 
 
 
2
3
4
0
@@ -1,7 +1,4 @@
0
 require 'abstract_unit'
0
-require 'action_controller/cgi_process'
0
-require 'action_controller/cgi_ext'
0
-
0
 require 'stringio'
0
 
0
 
...
1
2
3
4
5
6
7
...
1
 
 
 
2
3
4
0
@@ -1,7 +1,4 @@
0
 require 'abstract_unit'
0
-require 'action_controller/cgi_process'
0
-require 'action_controller/cgi_ext'
0
-
0
 
0
 class CGI::Session
0
   def cache

Comments