diff options
author | Matthew Rudy Jacobs <MatthewRudyJacobs@gmail.com> | 2009-10-28 09:17:59 +0000 |
---|---|---|
committer | Yehuda Katz <wycats@gmail.com> | 2009-11-01 02:23:47 +0100 |
commit | f4f76772fb5c25357a54baaa9cd20f7e9a1cd653 (patch) | |
tree | c3095ca798d006fa5750538d862cf5fcc35da6ba /actionmailer/lib/action_mailer/delivery_method/test.rb | |
parent | 3f560386125adabe441facf2514ad53425e4af4e (diff) | |
download | rails-f4f76772fb5c25357a54baaa9cd20f7e9a1cd653.tar.gz rails-f4f76772fb5c25357a54baaa9cd20f7e9a1cd653.tar.bz2 rails-f4f76772fb5c25357a54baaa9cd20f7e9a1cd653.zip |
abstract all of the ActionMailer delivery methods into their own classes. thereby the following are equivalent
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.delivery_method = ActionMailer::DeliveryMethod::Smtp
we could equally set our own custom object
as long as it provides the instance method :perform_delivery(mail)
eg.
class MySmsDeliveryMethod
def perform_delivery(mail)
Sms.send(mail['to'], mail['body'])
end
end
MySmsMailer.delivery_method = MySmsDeliveryMethod.new
Signed-off-by: José Valim <jose.valim@gmail.com>
Diffstat (limited to 'actionmailer/lib/action_mailer/delivery_method/test.rb')
-rw-r--r-- | actionmailer/lib/action_mailer/delivery_method/test.rb | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/actionmailer/lib/action_mailer/delivery_method/test.rb b/actionmailer/lib/action_mailer/delivery_method/test.rb new file mode 100644 index 0000000000..e63e0abbb8 --- /dev/null +++ b/actionmailer/lib/action_mailer/delivery_method/test.rb @@ -0,0 +1,12 @@ +module ActionMailer + module DeliveryMethod + + # A delivery method implementation designed for testing, which just appends each record to the :deliveries array + class Test < Method + + def perform_delivery(mail) + ActionMailer::Base.deliveries << mail + end + end + end +end |