aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2010-09-27 20:42:02 +0200
committerJosé Valim <jose.valim@gmail.com>2010-09-27 20:43:56 +0200
commit6067d1620075c1c311bbae01993453cd80967804 (patch)
treea6bbb495255db6e4fd30e8209316a768b5691350
parente1b51955f15e91f3f1705612fd0aca82a257e2f4 (diff)
downloadrails-6067d1620075c1c311bbae01993453cd80967804.tar.gz
rails-6067d1620075c1c311bbae01993453cd80967804.tar.bz2
rails-6067d1620075c1c311bbae01993453cd80967804.zip
Call it compile_methods! and do the same on AM.
-rw-r--r--actionmailer/lib/action_mailer/railtie.rb10
-rw-r--r--actionpack/lib/action_controller/railtie.rb4
-rw-r--r--activesupport/lib/active_support/configurable.rb6
-rw-r--r--activesupport/test/configurable_test.rb2
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