railtie.rb 1.8 KB
Newer Older
1
require "rails"
2
require "action_controller"
3
require "action_dispatch/railtie"
4
require "action_view/railtie"
5
require "abstract_controller/railties/routes_helpers"
6
require "action_controller/railties/paths"
7

8
module ActionController
C
Carl Lerche 已提交
9
  class Railtie < Rails::Railtie
10
    config.action_controller = ActiveSupport::OrderedOptions.new
11

12 13
    initializer "action_controller.logger" do
      ActiveSupport.on_load(:action_controller) { self.logger ||= Rails.logger }
14
    end
15

16 17
    initializer "action_controller.initialize_framework_caches" do
      ActiveSupport.on_load(:action_controller) { self.cache_store ||= RAILS_CACHE }
18
    end
19

J
José Valim 已提交
20
    initializer "action_controller.set_configs" do |app|
21 22 23
      paths   = app.config.paths
      options = app.config.action_controller

24 25
      options.consider_all_requests_local ||= app.config.consider_all_requests_local

26 27 28 29
      options.assets_dir           ||= paths["public"].first
      options.javascripts_dir      ||= paths["public/javascripts"].first
      options.stylesheets_dir      ||= paths["public/stylesheets"].first
      options.page_cache_directory ||= paths["public"].first
30

31
      # make sure readers methods get compiled
J
José Valim 已提交
32 33
      options.asset_path           ||= app.config.asset_path
      options.asset_host           ||= app.config.asset_host
34

35
      ActiveSupport.on_load(:action_controller) do
36
        include app.routes.mounted_helpers
37 38
        extend ::AbstractController::Railties::RoutesHelpers.with(app.routes)
        extend ::ActionController::Railties::Paths.with(app)
39
        options.each { |k,v| send("#{k}=", v) }
40
      end
J
José Valim 已提交
41
    end
42

43
    initializer "action_controller.compile_config_methods" do
44
      ActiveSupport.on_load(:action_controller) do
45
        config.compile_methods! if config.respond_to?(:compile_methods!)
46 47
      end
    end
48
  end
P
Piotr Sarnacki 已提交
49
end