提交 31ce92f7 编写于 作者: J Joshua Peek

Use autoload instead of explicit requires for ActionController

上级 6de1060e
...@@ -32,47 +32,63 @@ ...@@ -32,47 +32,63 @@
end end
$:.unshift "#{File.dirname(__FILE__)}/action_controller/vendor/html-scanner" $:.unshift "#{File.dirname(__FILE__)}/action_controller/vendor/html-scanner"
require 'action_controller/vendor/rack'
require 'action_controller/base' module ActionController
require 'action_controller/request' # TODO: Review explicit to see if they will automatically be handled by
require 'action_controller/rescue' # the initilizer if they are really needed.
require 'action_controller/benchmarking' def self.load_all!
require 'action_controller/flash' [Base, CgiRequest, CgiResponse, RackRequest, RackRequest, Http::Headers, UrlRewriter, UrlWriter]
require 'action_controller/filters' end
require 'action_controller/layout'
require 'action_controller/mime_responds'
require 'action_controller/helpers'
require 'action_controller/cookies'
require 'action_controller/cgi_process'
require 'action_controller/caching'
require 'action_controller/verification'
require 'action_controller/streaming'
require 'action_controller/session_management'
require 'action_controller/http_authentication'
require 'action_controller/rack_process'
require 'action_controller/record_identifier'
require 'action_controller/request_forgery_protection'
require 'action_controller/headers'
require 'action_controller/translation'
require 'action_view' autoload :AbstractRequest, 'action_controller/request'
autoload :AbstractResponse, 'action_controller/response'
autoload :Base, 'action_controller/base'
autoload :Benchmarking, 'action_controller/benchmarking'
autoload :Caching, 'action_controller/caching'
autoload :CgiRequest, 'action_controller/cgi_process'
autoload :CgiResponse, 'action_controller/cgi_process'
autoload :Cookies, 'action_controller/cookies'
autoload :Dispatcher, 'action_controller/dispatcher'
autoload :Filters, 'action_controller/filters'
autoload :Flash, 'action_controller/flash'
autoload :Helpers, 'action_controller/helpers'
autoload :HttpAuthentication, 'action_controller/http_authentication'
autoload :IntegrationTest, 'action_controller/integration'
autoload :Layout, 'action_controller/layout'
autoload :MimeResponds, 'action_controller/mime_responds'
autoload :PolymorphicRoutes, 'action_controller/polymorphic_routes'
autoload :RackRequest, 'action_controller/rack_process'
autoload :RackResponse, 'action_controller/rack_process'
autoload :RecordIdentifier, 'action_controller/record_identifier'
autoload :RequestForgeryProtection, 'action_controller/request_forgery_protection'
autoload :Rescue, 'action_controller/rescue'
autoload :Resources, 'action_controller/resources'
autoload :Routing, 'action_controller/routing'
autoload :SessionManagement, 'action_controller/session_management'
autoload :StatusCodes, 'action_controller/status_codes'
autoload :Streaming, 'action_controller/streaming'
autoload :TestCase, 'action_controller/test_case'
autoload :TestProcess, 'action_controller/test_process'
autoload :Translation, 'action_controller/translation'
autoload :UrlRewriter, 'action_controller/url_rewriter'
autoload :UrlWriter, 'action_controller/url_rewriter'
autoload :Verification, 'action_controller/verification'
ActionController::Base.class_eval do module Http
include ActionController::Flash autoload :Headers, 'action_controller/headers'
include ActionController::Filters end
include ActionController::Layout
include ActionController::Benchmarking
include ActionController::Rescue
include ActionController::MimeResponds
include ActionController::Helpers
include ActionController::Cookies
include ActionController::Caching
include ActionController::Verification
include ActionController::Streaming
include ActionController::SessionManagement
include ActionController::HttpAuthentication::Basic::ControllerMethods
include ActionController::RecordIdentifier
include ActionController::RequestForgeryProtection
include ActionController::Translation
end end
class CGI
class Session
autoload :ActiveRecordStore, 'action_controller/session/active_record_store'
autoload :CookieStore, 'action_controller/session/cookie_store'
autoload :DRbStore, 'action_controller/session/drb_store'
autoload :MemCacheStore, 'action_controller/session/mem_cache_store'
end
end
autoload :Mime, 'action_controller/mime_type'
autoload :Rack, 'action_controller/vendor/rack'
ActionController.load_all!
require 'action_controller/mime_type'
require 'action_controller/request'
require 'action_controller/response'
require 'action_controller/routing'
require 'action_controller/resources'
require 'action_controller/url_rewriter'
require 'action_controller/status_codes'
require 'action_view' require 'action_view'
require 'drb' require 'drb'
require 'set' require 'set'
...@@ -1332,4 +1325,11 @@ def process_cleanup ...@@ -1332,4 +1325,11 @@ def process_cleanup
close_session close_session
end end
end end
Base.class_eval do
include Flash, Filters, Layout, Benchmarking, Rescue, MimeResponds, Helpers
include Cookies, Caching, Verification, Streaming
include SessionManagement, HttpAuthentication::Basic::ControllerMethods
include RecordIdentifier, RequestForgeryProtection, Translation
end
end end
...@@ -2,13 +2,6 @@ ...@@ -2,13 +2,6 @@
require 'uri' require 'uri'
require 'set' require 'set'
require 'action_controller/caching/pages'
require 'action_controller/caching/actions'
require 'action_controller/caching/sql_cache'
require 'action_controller/caching/sweeping'
require 'action_controller/caching/fragments'
module ActionController #:nodoc: module ActionController #:nodoc:
# Caching is a cheap way of speeding up slow applications by keeping the result of calculations, renderings, and database calls # Caching is a cheap way of speeding up slow applications by keeping the result of calculations, renderings, and database calls
# around for subsequent requests. Action Controller affords you three approaches in varying levels of granularity: Page, Action, Fragment. # around for subsequent requests. Action Controller affords you three approaches in varying levels of granularity: Page, Action, Fragment.
...@@ -31,6 +24,12 @@ module ActionController #:nodoc: ...@@ -31,6 +24,12 @@ module ActionController #:nodoc:
# ActionController::Base.cache_store = :mem_cache_store, "localhost" # ActionController::Base.cache_store = :mem_cache_store, "localhost"
# ActionController::Base.cache_store = MyOwnStore.new("parameter") # ActionController::Base.cache_store = MyOwnStore.new("parameter")
module Caching module Caching
autoload :Actions, 'action_controller/caching/actions'
autoload :Fragments, 'action_controller/caching/fragments'
autoload :Pages, 'action_controller/caching/pages'
autoload :SqlCache, 'action_controller/caching/sql_cache'
autoload :Sweeping, 'action_controller/caching/sweeping'
def self.included(base) #:nodoc: def self.included(base) #:nodoc:
base.class_eval do base.class_eval do
@@cache_store = nil @@cache_store = nil
...@@ -63,10 +62,9 @@ def cache(key, options = {}, &block) ...@@ -63,10 +62,9 @@ def cache(key, options = {}, &block)
end end
end end
private
private
def cache_configured? def cache_configured?
self.class.cache_configured? self.class.cache_configured?
end end
end end
end end
\ No newline at end of file
require 'action_controller/cgi_ext' require 'action_controller/cgi_ext'
require 'action_controller/session/cookie_store'
module ActionController #:nodoc: module ActionController #:nodoc:
class Base class Base
......
require 'action_controller/test_case'
require 'action_controller/dispatcher'
require 'action_controller/test_process'
require 'stringio' require 'stringio'
require 'uri' require 'uri'
......
require 'action_controller/integration'
require 'active_support/testing/performance' require 'active_support/testing/performance'
require 'active_support/testing/default' require 'active_support/testing/default'
......
require 'action_controller/cgi_ext' require 'action_controller/cgi_ext'
require 'action_controller/session/cookie_store'
module ActionController #:nodoc: module ActionController #:nodoc:
class RackRequest < AbstractRequest #:nodoc: class RackRequest < AbstractRequest #:nodoc:
......
require 'optparse' require 'optparse'
require 'action_controller/integration'
module ActionController module ActionController
class RequestProfiler class RequestProfiler
......
...@@ -669,7 +669,3 @@ def action_options_for(action, resource, method = nil) ...@@ -669,7 +669,3 @@ def action_options_for(action, resource, method = nil)
end end
end end
end end
class ActionController::Routing::RouteSet::Mapper
include ActionController::Resources
end
require 'cgi' require 'cgi'
require 'uri' require 'uri'
require 'action_controller/polymorphic_routes'
require 'action_controller/routing/optimisations' require 'action_controller/routing/optimisations'
require 'action_controller/routing/routing_ext' require 'action_controller/routing/routing_ext'
require 'action_controller/routing/route' require 'action_controller/routing/route'
......
...@@ -7,6 +7,8 @@ class RouteSet #:nodoc: ...@@ -7,6 +7,8 @@ class RouteSet #:nodoc:
# Mapper instances have relatively few instance methods, in order to avoid # Mapper instances have relatively few instance methods, in order to avoid
# clashes with named routes. # clashes with named routes.
class Mapper #:doc: class Mapper #:doc:
include ActionController::Resources
def initialize(set) #:nodoc: def initialize(set) #:nodoc:
@set = set @set = set
end end
......
require 'action_controller/session/cookie_store'
require 'action_controller/session/drb_store'
require 'action_controller/session/mem_cache_store'
if Object.const_defined?(:ActiveRecord)
require 'action_controller/session/active_record_store'
end
module ActionController #:nodoc: module ActionController #:nodoc:
module SessionManagement #:nodoc: module SessionManagement #:nodoc:
def self.included(base) def self.included(base)
......
require 'action_controller/test_case'
module ActionView module ActionView
class TestCase < ActiveSupport::TestCase class TestCase < ActiveSupport::TestCase
include ActionController::TestCase::Assertions include ActionController::TestCase::Assertions
......
# These tests exercise CGI::Session::ActiveRecordStore, so you're going to # These tests exercise CGI::Session::ActiveRecordStore, so you're going to
# need AR in a sibling directory to AP and have SQLite installed. # need AR in a sibling directory to AP and have SQLite installed.
require 'active_record_unit' require 'active_record_unit'
require 'action_controller/session/active_record_store'
module CommonActiveRecordStoreTests module CommonActiveRecordStoreTests
def test_basics def test_basics
......
require 'abstract_unit' require 'abstract_unit'
require 'action_controller/cgi_process'
class BaseCgiTest < Test::Unit::TestCase class BaseCgiTest < Test::Unit::TestCase
def setup def setup
......
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
uses_mocha 'dispatcher tests' do uses_mocha 'dispatcher tests' do
require 'action_controller/dispatcher'
class DispatcherTest < Test::Unit::TestCase class DispatcherTest < Test::Unit::TestCase
Dispatcher = ActionController::Dispatcher Dispatcher = ActionController::Dispatcher
......
require 'abstract_unit' require 'abstract_unit'
require 'action_controller/integration'
require 'action_controller/routing'
uses_mocha 'integration' do uses_mocha 'integration' do
......
require 'abstract_unit' require 'abstract_unit'
require 'action_controller/integration'
require 'action_controller/routing'
unless defined? ApplicationController unless defined? ApplicationController
class ApplicationController < ActionController::Base class ApplicationController < ActionController::Base
......
require 'abstract_unit' require 'abstract_unit'
require 'action_controller/rack_process'
class BaseRackTest < Test::Unit::TestCase class BaseRackTest < Test::Unit::TestCase
def setup def setup
......
require 'abstract_unit' require 'abstract_unit'
require 'action_controller/integration'
class RequestTest < ActiveSupport::TestCase class RequestTest < ActiveSupport::TestCase
def setup def setup
......
require 'abstract_unit' require 'abstract_unit'
require 'controller/fake_controllers' require 'controller/fake_controllers'
require 'action_controller/routing'
class MilestonesController < ActionController::Base class MilestonesController < ActionController::Base
def index() head :ok end def index() head :ok end
......
require 'abstract_unit' require 'abstract_unit'
require 'action_controller/cgi_process'
require 'action_controller/cgi_ext'
require 'stringio' require 'stringio'
......
require 'abstract_unit' require 'abstract_unit'
require 'action_controller/cgi_process'
require 'action_controller/cgi_ext'
class CGI::Session class CGI::Session
def cache def cache
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册