X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=vendor%2Frails%2Factionmailer%2Flib%2Faction_mailer%2Fadv_attr_accessor.rb;fp=vendor%2Frails%2Factionmailer%2Flib%2Faction_mailer%2Fadv_attr_accessor.rb;h=e77029afdd810b669e2c510717ec0633db18667c;hb=437aa336c44c74a30aeea16a06743c32747ed661;hp=0000000000000000000000000000000000000000;hpb=97a0772b06264134cfe38e7494f9427efe0840a0;p=feedcatcher.git

diff --git a/vendor/rails/actionmailer/lib/action_mailer/adv_attr_accessor.rb b/vendor/rails/actionmailer/lib/action_mailer/adv_attr_accessor.rb
new file mode 100644
index 0000000..e77029a
--- /dev/null
+++ b/vendor/rails/actionmailer/lib/action_mailer/adv_attr_accessor.rb
@@ -0,0 +1,30 @@
+module ActionMailer
+  module AdvAttrAccessor #:nodoc:
+    def self.included(base)
+      base.extend(ClassMethods)
+    end
+
+    module ClassMethods #:nodoc:
+      def adv_attr_accessor(*names)
+        names.each do |name|
+          ivar = "@#{name}"
+
+          define_method("#{name}=") do |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?
+              if instance_variable_names.include?(ivar)
+                instance_variable_get(ivar)
+              end
+            else
+              instance_variable_set(ivar, parameters.first)
+            end
+          end
+        end
+      end
+    end
+  end
+end