module Roda::RodaPlugins::Mailer::ClassMethods

def mail(path, *args)

returned mail object before calling +deliver+ to send the mail.
block after any usual match block arguments. You can further manipulate the
and arguments. Any arguments given are yielded to the appropriate +r.mail+
Return a Mail::Message instance for the email for the given request path
def mail(path, *args)
  mail = ::Mail.new
  catch(:no_mail) do
    unless mail.equal?(new("PATH_INFO"=>path, 'SCRIPT_NAME'=>'', "REQUEST_METHOD"=>"MAIL", 'rack.input'=>StringIO.new, 'roda.mail'=>mail, 'roda.mail_args'=>args)._roda_handle_main_route)
      raise Error, "route did not return mail instance for #{path.inspect}, #{args.inspect}"
    end
    mail
  end
end

def sendmail(*args)

Calls +mail+ with given arguments and immediately sends the resulting mail.
def sendmail(*args)
  if m = mail(*args)
    m.deliver
  end
end