From d9e218bd51d2986abe01090813f55bee6cf9a496 Mon Sep 17 00:00:00 2001 From: Jeremy Raines Date: Wed, 12 Mar 2014 10:47:40 -0400 Subject: [PATCH] Do not fetch mail message for every call to it --- lib/gmail/message.rb | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/gmail/message.rb b/lib/gmail/message.rb index 6bb5f72..71cc586 100644 --- a/lib/gmail/message.rb +++ b/lib/gmail/message.rb @@ -84,15 +84,19 @@ def archive! # Parsed MIME message object def message - require 'mail' - request,part = 'RFC822','RFC822' - request,part = 'BODY.PEEK[]','BODY[]' if @gmail.peek - _body = @gmail.in_mailbox(@mailbox) { @gmail.imap.uid_fetch(uid, request)[0].attr[part] } - @message ||= Mail.new(_body) + if @message + return @message + else + require 'mail' + request,part = 'RFC822','RFC822' + request,part = 'BODY.PEEK[]','BODY[]' if @gmail.peek + _body = @gmail.in_mailbox(@mailbox) { @gmail.imap.uid_fetch(uid, request)[0].attr[part] } + @message = Mail.new(_body) + end end private - + # Delegate all other methods to the Mail message def method_missing(*args, &block) if block_given?