aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xactionmailer/Rakefile1
-rw-r--r--actionmailer/lib/action_mailer/adv_attr_accessor.rb10
2 files changed, 8 insertions, 3 deletions
diff --git a/actionmailer/Rakefile b/actionmailer/Rakefile
index 51ec9ed6b9..f0dd7b66d7 100755
--- a/actionmailer/Rakefile
+++ b/actionmailer/Rakefile
@@ -25,6 +25,7 @@ Rake::TestTask.new { |t|
t.libs << "test"
t.pattern = 'test/*_test.rb'
t.verbose = true
+ t.warning = true
}
diff --git a/actionmailer/lib/action_mailer/adv_attr_accessor.rb b/actionmailer/lib/action_mailer/adv_attr_accessor.rb
index a8b83c5e64..50afe4d742 100644
--- a/actionmailer/lib/action_mailer/adv_attr_accessor.rb
+++ b/actionmailer/lib/action_mailer/adv_attr_accessor.rb
@@ -8,16 +8,20 @@ module ActionMailer
module ClassMethods #:nodoc:
def adv_attr_accessor(*names)
names.each do |name|
+ ivar = "@#{name}"
+
define_method("#{name}=") do |value|
- instance_variable_set("@#{name}", value)
+ instance_variable_set(ivar, value)
end
define_method(name) do |*parameters|
raise ArgumentError, "expected 0 or 1 parameters" unless parameters.length <= 1
if parameters.empty?
- instance_variable_get("@#{name}")
+ if instance_variables.include?(ivar)
+ instance_variable_get(ivar)
+ end
else
- instance_variable_set("@#{name}", parameters.first)
+ instance_variable_set(ivar, parameters.first)
end
end
end