Froze rails gems
[depot.git] / vendor / rails / actionmailer / lib / action_mailer / adv_attr_accessor.rb
1 module ActionMailer
2 module AdvAttrAccessor #:nodoc:
3 def self.included(base)
4 base.extend(ClassMethods)
5 end
6
7 module ClassMethods #:nodoc:
8 def adv_attr_accessor(*names)
9 names.each do |name|
10 ivar = "@#{name}"
11
12 define_method("#{name}=") do |value|
13 instance_variable_set(ivar, value)
14 end
15
16 define_method(name) do |*parameters|
17 raise ArgumentError, "expected 0 or 1 parameters" unless parameters.length <= 1
18 if parameters.empty?
19 if instance_variable_names.include?(ivar)
20 instance_variable_get(ivar)
21 end
22 else
23 instance_variable_set(ivar, parameters.first)
24 end
25 end
26 end
27 end
28 end
29 end
30 end