Skip to content

Commit 0fc85fc

Browse files
committed
Made Message.message only query the server once per message
Especially if I am leveraging method_missing and calling messages that get delegated to Mail message, I don't want to query the server for every argument.
1 parent 5d8f5b5 commit 0fc85fc

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

lib/gmail/message.rb

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
require 'mail'
2+
13
class Gmail
24
class Message
35
def initialize(gmail, mailbox, uid)
@@ -89,11 +91,12 @@ def archive!
8991

9092
# Parsed MIME message object
9193
def message
92-
require 'mail'
93-
request,part = 'RFC822','RFC822'
94-
request,part = 'BODY.PEEK[]','BODY[]' if @gmail.peek
95-
_body = @gmail.in_mailbox(@mailbox) { @gmail.imap.uid_fetch(uid, request)[0].attr[part] }
96-
@message ||= Mail.new(_body)
94+
request, part = if @gmail.peek
95+
['BODY.PEEK[]', 'BODY[]']
96+
else
97+
['RFC822', 'RFC822']
98+
end
99+
@message ||= Mail.new(@gmail.imap.uid_fetch(uid, request)[0].attr[part])
97100
end
98101

99102
private

0 commit comments

Comments
 (0)