From 6067d1620075c1c311bbae01993453cd80967804 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 27 Sep 2010 20:42:02 +0200 Subject: [PATCH] Call it compile_methods! and do the same on AM. --- actionmailer/lib/action_mailer/railtie.rb | 10 ++++++++++ actionpack/lib/action_controller/railtie.rb | 4 ++-- activesupport/lib/active_support/configurable.rb | 6 +++--- activesupport/test/configurable_test.rb | 2 +- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/actionmailer/lib/action_mailer/railtie.rb b/actionmailer/lib/action_mailer/railtie.rb index 889ae34407..86136bdafd 100644 --- a/actionmailer/lib/action_mailer/railtie.rb +++ b/actionmailer/lib/action_mailer/railtie.rb @@ -18,6 +18,10 @@ module ActionMailer options.javascripts_dir ||= paths.public.javascripts.to_a.first options.stylesheets_dir ||= paths.public.stylesheets.to_a.first + # make sure readers methods get compiled + options.asset_path ||= nil + options.asset_host ||= nil + ActiveSupport.on_load(:action_mailer) do include AbstractController::UrlFor extend ::AbstractController::Railties::RoutesHelpers.with(app.routes) @@ -25,5 +29,11 @@ module ActionMailer options.each { |k,v| send("#{k}=", v) } end end + + initializer "action_mailer.compile_config_methods" do + ActiveSupport.on_load(:action_mailer) do + config.compile_methods! if config.respond_to?(:compile_methods!) + end + end end end diff --git a/actionpack/lib/action_controller/railtie.rb b/actionpack/lib/action_controller/railtie.rb index 4c57d82f1c..0ade42ba2d 100644 --- a/actionpack/lib/action_controller/railtie.rb +++ b/actionpack/lib/action_controller/railtie.rb @@ -38,9 +38,9 @@ module ActionController end end - config.after_initialize do + initializer "action_controller.compile_config_methods" do ActiveSupport.on_load(:action_controller) do - config.crystalize! if config.respond_to?(:crystalize!) + config.compile_methods! if config.respond_to?(:compile_methods!) end end end diff --git a/activesupport/lib/active_support/configurable.rb b/activesupport/lib/active_support/configurable.rb index 1914f10669..58ed37b018 100644 --- a/activesupport/lib/active_support/configurable.rb +++ b/activesupport/lib/active_support/configurable.rb @@ -10,12 +10,12 @@ module ActiveSupport extend ActiveSupport::Concern class Configuration < ActiveSupport::InheritableOptions - def crystalize! - self.class.crystalize!(keys.reject {|key| respond_to?(key)}) + def compile_methods! + self.class.compile_methods!(keys.reject {|key| respond_to?(key)}) end # compiles reader methods so we don't have to go through method_missing - def self.crystalize!(keys) + def self.compile_methods!(keys) keys.each do |key| class_eval <<-RUBY, __FILE__, __LINE__ + 1 def #{key}; _get(#{key.inspect}); end diff --git a/activesupport/test/configurable_test.rb b/activesupport/test/configurable_test.rb index 4f288eb4d5..9c773c1944 100644 --- a/activesupport/test/configurable_test.rb +++ b/activesupport/test/configurable_test.rb @@ -49,7 +49,7 @@ class ConfigurableActiveSupport < ActiveSupport::TestCase assert !child.config.respond_to?(:bar) assert !child.new.config.respond_to?(:bar) - parent.config.crystalize! + parent.config.compile_methods! assert_equal :foo, parent.config.bar assert_equal :foo, child.new.config.bar