gmail 0.4.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +13 -0
  4. data/.rubocop_todo.yml +239 -0
  5. data/.travis.yml +19 -0
  6. data/CHANGELOG.md +75 -18
  7. data/Gemfile +1 -1
  8. data/README.md +214 -131
  9. data/Rakefile +11 -0
  10. data/gmail.gemspec +8 -8
  11. data/lib/gmail.rb +31 -18
  12. data/lib/gmail/client.rb +11 -7
  13. data/lib/gmail/client/base.rb +52 -48
  14. data/lib/gmail/client/plain.rb +9 -5
  15. data/lib/gmail/client/xoauth.rb +23 -6
  16. data/lib/gmail/client/xoauth2.rb +39 -0
  17. data/lib/gmail/imap_extensions.rb +150 -0
  18. data/lib/gmail/labels.rb +33 -16
  19. data/lib/gmail/mailbox.rb +60 -42
  20. data/lib/gmail/message.rb +142 -101
  21. data/lib/gmail/version.rb +2 -2
  22. data/spec/account.yml.obfus +2 -0
  23. data/spec/gmail/client/base_spec.rb +5 -0
  24. data/spec/gmail/client/plain_spec.rb +168 -0
  25. data/spec/gmail/client/xoauth2_spec.rb +186 -0
  26. data/spec/gmail/client/xoauth_spec.rb +5 -0
  27. data/spec/gmail/client_spec.rb +5 -0
  28. data/spec/gmail/imap_extensions_spec.rb +12 -0
  29. data/spec/gmail/labels_spec.rb +18 -0
  30. data/spec/{mailbox_spec.rb → gmail/mailbox_spec.rb} +14 -14
  31. data/spec/gmail/message_spec.rb +181 -0
  32. data/spec/gmail_spec.rb +21 -21
  33. data/spec/recordings/gmail/_new_connects_with_client_and_give_it_context_when_block_given.yml +28 -0
  34. data/spec/recordings/gmail/_new_connects_with_gmail_service_and_return_valid_connection_object.yml +28 -0
  35. data/spec/recordings/gmail/_new_does_not_raise_error_when_couldn_t_connect_with_given_account.yml +13 -0
  36. data/spec/recordings/gmail/_new_raises_error_when_couldn_t_connect_with_given_account.yml +13 -0
  37. data/spec/recordings/gmail_client_plain/instance/_connection_automatically_logs_in_to_gmail_account_when_it_s_called.yml +42 -0
  38. data/spec/recordings/gmail_client_plain/instance/delivers_inline_composed_email.yml +42 -0
  39. data/spec/recordings/gmail_client_plain/instance/does_not_log_in_when_given_gmail_account_is_invalid.yml +13 -0
  40. data/spec/recordings/gmail_client_plain/instance/does_not_raise_error_even_though_gmail_account_is_invalid.yml +13 -0
  41. data/spec/recordings/gmail_client_plain/instance/labels/checks_if_there_is_given_label_defined.yml +196 -0
  42. data/spec/recordings/gmail_client_plain/instance/labels/creates_given_label.yml +151 -0
  43. data/spec/recordings/gmail_client_plain/instance/labels/removes_existing_label.yml +146 -0
  44. data/spec/recordings/gmail_client_plain/instance/labels/returns_list_of_all_available_labels.yml +113 -0
  45. data/spec/recordings/gmail_client_plain/instance/properly_logs_in_to_valid_gmail_account.yml +42 -0
  46. data/spec/recordings/gmail_client_plain/instance/properly_logs_out_from_gmail.yml +42 -0
  47. data/spec/recordings/gmail_client_plain/instance/properly_switches_to_given_mailbox.yml +109 -0
  48. data/spec/recordings/gmail_client_plain/instance/properly_switches_to_given_mailbox_using_block_style.yml +109 -0
  49. data/spec/recordings/gmail_client_plain/instance/raises_error_when_given_gmail_account_is_invalid_and_errors_enabled.yml +13 -0
  50. data/spec/recordings/gmail_client_xo_auth2/instance/does_not_log_in_when_given_gmail_account_is_invalid.yml +13 -0
  51. data/spec/recordings/gmail_client_xo_auth2/instance/labels/checks_if_there_is_given_label_defined.yml +27 -0
  52. data/spec/recordings/gmail_client_xo_auth2/instance/labels/creates_given_label.yml +39 -0
  53. data/spec/recordings/gmail_client_xo_auth2/instance/labels/removes_existing_label.yml +39 -0
  54. data/spec/recordings/gmail_client_xo_auth2/instance/labels/returns_list_of_all_available_labels.yml +27 -0
  55. data/spec/recordings/gmail_client_xo_auth2/instance/properly_logs_in_to_valid_gmail_account.yml +15 -0
  56. data/spec/recordings/gmail_client_xo_auth2/instance/properly_logs_out_from_gmail.yml +15 -0
  57. data/spec/recordings/gmail_client_xo_auth2/instance/properly_switches_to_given_mailbox.yml +40 -0
  58. data/spec/recordings/gmail_client_xo_auth2/instance/properly_switches_to_given_mailbox_using_block_style.yml +40 -0
  59. data/spec/recordings/gmail_client_xo_auth2/instance/raises_error_when_given_gmail_account_is_invalid_and_errors_enabled.yml +13 -0
  60. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/all/localizes_into_the_appropriate_label.yml +116 -0
  61. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/drafts/localizes_into_the_appropriate_label.yml +116 -0
  62. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/flagged/localizes_into_the_appropriate_label.yml +116 -0
  63. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/important/localizes_into_the_appropriate_label.yml +116 -0
  64. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/inbox/localizes_into_the_appropriate_label.yml +42 -0
  65. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/junk/localizes_into_the_appropriate_label.yml +116 -0
  66. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/sent/localizes_into_the_appropriate_label.yml +116 -0
  67. data/spec/recordings/gmail_labels/localize/when_given_the_xl_is_tflag/trash/localizes_into_the_appropriate_label.yml +116 -0
  68. data/spec/recordings/gmail_mailbox/instance/counts_all_emails.yml +277 -0
  69. data/spec/recordings/gmail_mailbox/instance/finds_messages.yml +586 -0
  70. data/spec/recordings/gmail_mailbox/on_initialize/sets_client_and_name.yml +42 -0
  71. data/spec/recordings/gmail_mailbox/on_initialize/works_in_inbox_by_default.yml +42 -0
  72. data/spec/recordings/gmail_message/initialize/sets_prefetch_attrs.yml +578 -0
  73. data/spec/recordings/gmail_message/initialize/sets_uid_and_mailbox.yml +580 -0
  74. data/spec/recordings/gmail_message/instance_methods/deletes_itself.yml +637 -0
  75. data/spec/recordings/gmail_message/instance_methods/marks_itself_read.yml +682 -0
  76. data/spec/recordings/gmail_message/instance_methods/marks_itself_unread.yml +686 -0
  77. data/spec/recordings/gmail_message/instance_methods/moves_from_one_tag_to_other.yml +862 -0
  78. data/spec/recordings/gmail_message/instance_methods/removes_a_given_label.yml +776 -0
  79. data/spec/recordings/gmail_message/instance_methods/removes_a_given_label_with_old_method.yml +776 -0
  80. data/spec/recordings/gmail_message/instance_methods/sets_given_label.yml +690 -0
  81. data/spec/recordings/gmail_message/instance_methods/sets_given_label_with_old_method.yml +691 -0
  82. data/spec/spec_helper.rb +34 -10
  83. data/spec/support/imap_mock.rb +129 -0
  84. data/spec/support/obfuscation.rb +52 -0
  85. metadata +79 -30
  86. data/TODO.md +0 -12
  87. data/lib/gmail/client/imap_extensions.rb +0 -54
  88. data/spec/client_spec.rb +0 -178
  89. data/spec/message_spec.rb +0 -51
@@ -0,0 +1,151 @@
1
+ ---
2
+ LOGIN-9a890af1c86854f5170d99be6e10b8f1:
3
+ - - :return
4
+ - !ruby/struct:Net::IMAP::TaggedResponse
5
+ tag: RUBY0001
6
+ name: OK
7
+ data: !ruby/struct:Net::IMAP::ResponseText
8
+ code:
9
+ text: ki0zvkyi1yzgy7xu4f4dh46nqrcecm@gmail.com authenticated (Success)
10
+ raw_data: "RUBY0001 OK ki0zvkyi1yzgy7xu4f4dh46nqrcecm@gmail.com authenticated
11
+ (Success)\r\n"
12
+ - CAPABILITY: &1
13
+ - - IMAP4REV1
14
+ - UNSELECT
15
+ - IDLE
16
+ - NAMESPACE
17
+ - QUOTA
18
+ - ID
19
+ - XLIST
20
+ - CHILDREN
21
+ - X-GM-EXT-1
22
+ - UIDPLUS
23
+ - COMPRESS=DEFLATE
24
+ - ENABLE
25
+ - MOVE
26
+ - CONDSTORE
27
+ - ESEARCH
28
+ - UTF8=ACCEPT
29
+ CREATE-873546102acc7776d52edef1516784eb:
30
+ - - :return
31
+ - !ruby/struct:Net::IMAP::TaggedResponse
32
+ tag: RUBY0002
33
+ name: OK
34
+ data: !ruby/struct:Net::IMAP::ResponseText
35
+ code:
36
+ text: Success
37
+ raw_data: "RUBY0002 OK Success\r\n"
38
+ - CAPABILITY: *1
39
+ - - :raise
40
+ - !ruby/exception:Net::IMAP::NoResponseError
41
+ message: " Duplicate folder name MYLABEL (Failure)"
42
+ response: !ruby/struct:Net::IMAP::TaggedResponse
43
+ tag: RUBY0005
44
+ name: 'NO'
45
+ data: !ruby/struct:Net::IMAP::ResponseText
46
+ code: !ruby/struct:Net::IMAP::ResponseCode
47
+ name: ALREADYEXISTS
48
+ data:
49
+ text: " Duplicate folder name MYLABEL (Failure)"
50
+ raw_data: "RUBY0005 NO [ALREADYEXISTS] Duplicate folder name MYLABEL (Failure)\r\n"
51
+ - CAPABILITY: *1
52
+ LIST-e0583fa6130ee374cef031c01d8cc486:
53
+ - - :return
54
+ - !ruby/struct:Net::IMAP::TaggedResponse
55
+ tag: RUBY0003
56
+ name: OK
57
+ data: !ruby/struct:Net::IMAP::ResponseText
58
+ code:
59
+ text: Success
60
+ raw_data: "RUBY0003 OK Success\r\n"
61
+ - CAPABILITY: *1
62
+ LIST:
63
+ - !ruby/struct:Net::IMAP::MailboxList
64
+ attr:
65
+ - :Hasnochildren
66
+ delim: "/"
67
+ name: Awesome
68
+ - !ruby/struct:Net::IMAP::MailboxList
69
+ attr:
70
+ - :Hasnochildren
71
+ delim: "/"
72
+ name: Great
73
+ - !ruby/struct:Net::IMAP::MailboxList
74
+ attr:
75
+ - :Hasnochildren
76
+ delim: "/"
77
+ name: INBOX
78
+ - !ruby/struct:Net::IMAP::MailboxList
79
+ attr:
80
+ - :Hasnochildren
81
+ delim: "/"
82
+ name: MYLABEL
83
+ - !ruby/struct:Net::IMAP::MailboxList
84
+ attr:
85
+ - :Noselect
86
+ - :Haschildren
87
+ delim: "/"
88
+ name: "[Gmail]"
89
+ LIST-94cc1ce946087e61b81baed886d31dbc:
90
+ - - :return
91
+ - !ruby/struct:Net::IMAP::TaggedResponse
92
+ tag: RUBY0004
93
+ name: OK
94
+ data: !ruby/struct:Net::IMAP::ResponseText
95
+ code:
96
+ text: Success
97
+ raw_data: "RUBY0004 OK Success\r\n"
98
+ - CAPABILITY: *1
99
+ LIST:
100
+ - !ruby/struct:Net::IMAP::MailboxList
101
+ attr:
102
+ - :Hasnochildren
103
+ - :All
104
+ delim: "/"
105
+ name: "[Gmail]/All Mail"
106
+ - !ruby/struct:Net::IMAP::MailboxList
107
+ attr:
108
+ - :Hasnochildren
109
+ - :Drafts
110
+ delim: "/"
111
+ name: "[Gmail]/Drafts"
112
+ - !ruby/struct:Net::IMAP::MailboxList
113
+ attr:
114
+ - :Hasnochildren
115
+ - :Important
116
+ delim: "/"
117
+ name: "[Gmail]/Important"
118
+ - !ruby/struct:Net::IMAP::MailboxList
119
+ attr:
120
+ - :Sent
121
+ - :Hasnochildren
122
+ delim: "/"
123
+ name: "[Gmail]/Sent Mail"
124
+ - !ruby/struct:Net::IMAP::MailboxList
125
+ attr:
126
+ - :Hasnochildren
127
+ - :Junk
128
+ delim: "/"
129
+ name: "[Gmail]/Spam"
130
+ - !ruby/struct:Net::IMAP::MailboxList
131
+ attr:
132
+ - :Hasnochildren
133
+ - :Flagged
134
+ delim: "/"
135
+ name: "[Gmail]/Starred"
136
+ - !ruby/struct:Net::IMAP::MailboxList
137
+ attr:
138
+ - :Trash
139
+ - :Hasnochildren
140
+ delim: "/"
141
+ name: "[Gmail]/Trash"
142
+ DELETE-842c8f8a15eef1d47151d7a37868de75:
143
+ - - :return
144
+ - !ruby/struct:Net::IMAP::TaggedResponse
145
+ tag: RUBY0006
146
+ name: OK
147
+ data: !ruby/struct:Net::IMAP::ResponseText
148
+ code:
149
+ text: Success
150
+ raw_data: "RUBY0006 OK Success\r\n"
151
+ - CAPABILITY: *1
@@ -0,0 +1,146 @@
1
+ ---
2
+ LOGIN-9a890af1c86854f5170d99be6e10b8f1:
3
+ - - :return
4
+ - !ruby/struct:Net::IMAP::TaggedResponse
5
+ tag: RUBY0001
6
+ name: OK
7
+ data: !ruby/struct:Net::IMAP::ResponseText
8
+ code:
9
+ text: ki0zvkyi1yzgy7xu4f4dh46nqrcecm@gmail.com authenticated (Success)
10
+ raw_data: "RUBY0001 OK ki0zvkyi1yzgy7xu4f4dh46nqrcecm@gmail.com authenticated
11
+ (Success)\r\n"
12
+ - CAPABILITY: &1
13
+ - - IMAP4REV1
14
+ - UNSELECT
15
+ - IDLE
16
+ - NAMESPACE
17
+ - QUOTA
18
+ - ID
19
+ - XLIST
20
+ - CHILDREN
21
+ - X-GM-EXT-1
22
+ - UIDPLUS
23
+ - COMPRESS=DEFLATE
24
+ - ENABLE
25
+ - MOVE
26
+ - CONDSTORE
27
+ - ESEARCH
28
+ - UTF8=ACCEPT
29
+ CREATE-873546102acc7776d52edef1516784eb:
30
+ - - :return
31
+ - !ruby/struct:Net::IMAP::TaggedResponse
32
+ tag: RUBY0002
33
+ name: OK
34
+ data: !ruby/struct:Net::IMAP::ResponseText
35
+ code:
36
+ text: Success
37
+ raw_data: "RUBY0002 OK Success\r\n"
38
+ - CAPABILITY: *1
39
+ DELETE-842c8f8a15eef1d47151d7a37868de75:
40
+ - - :return
41
+ - !ruby/struct:Net::IMAP::TaggedResponse
42
+ tag: RUBY0003
43
+ name: OK
44
+ data: !ruby/struct:Net::IMAP::ResponseText
45
+ code:
46
+ text: Success
47
+ raw_data: "RUBY0003 OK Success\r\n"
48
+ - CAPABILITY: *1
49
+ - - :raise
50
+ - !ruby/exception:Net::IMAP::NoResponseError
51
+ message: " Unknown folder. (Failure)"
52
+ response: !ruby/struct:Net::IMAP::TaggedResponse
53
+ tag: RUBY0006
54
+ name: 'NO'
55
+ data: !ruby/struct:Net::IMAP::ResponseText
56
+ code: !ruby/struct:Net::IMAP::ResponseCode
57
+ name: NONEXISTENT
58
+ data:
59
+ text: " Unknown folder. (Failure)"
60
+ raw_data: "RUBY0006 NO [NONEXISTENT] Unknown folder. (Failure)\r\n"
61
+ - CAPABILITY: *1
62
+ LIST-e0583fa6130ee374cef031c01d8cc486:
63
+ - - :return
64
+ - !ruby/struct:Net::IMAP::TaggedResponse
65
+ tag: RUBY0004
66
+ name: OK
67
+ data: !ruby/struct:Net::IMAP::ResponseText
68
+ code:
69
+ text: Success
70
+ raw_data: "RUBY0004 OK Success\r\n"
71
+ - CAPABILITY: *1
72
+ LIST:
73
+ - !ruby/struct:Net::IMAP::MailboxList
74
+ attr:
75
+ - :Hasnochildren
76
+ delim: "/"
77
+ name: Awesome
78
+ - !ruby/struct:Net::IMAP::MailboxList
79
+ attr:
80
+ - :Hasnochildren
81
+ delim: "/"
82
+ name: Great
83
+ - !ruby/struct:Net::IMAP::MailboxList
84
+ attr:
85
+ - :Hasnochildren
86
+ delim: "/"
87
+ name: INBOX
88
+ - !ruby/struct:Net::IMAP::MailboxList
89
+ attr:
90
+ - :Noselect
91
+ - :Haschildren
92
+ delim: "/"
93
+ name: "[Gmail]"
94
+ LIST-94cc1ce946087e61b81baed886d31dbc:
95
+ - - :return
96
+ - !ruby/struct:Net::IMAP::TaggedResponse
97
+ tag: RUBY0005
98
+ name: OK
99
+ data: !ruby/struct:Net::IMAP::ResponseText
100
+ code:
101
+ text: Success
102
+ raw_data: "RUBY0005 OK Success\r\n"
103
+ - CAPABILITY: *1
104
+ LIST:
105
+ - !ruby/struct:Net::IMAP::MailboxList
106
+ attr:
107
+ - :Hasnochildren
108
+ - :All
109
+ delim: "/"
110
+ name: "[Gmail]/All Mail"
111
+ - !ruby/struct:Net::IMAP::MailboxList
112
+ attr:
113
+ - :Hasnochildren
114
+ - :Drafts
115
+ delim: "/"
116
+ name: "[Gmail]/Drafts"
117
+ - !ruby/struct:Net::IMAP::MailboxList
118
+ attr:
119
+ - :Hasnochildren
120
+ - :Important
121
+ delim: "/"
122
+ name: "[Gmail]/Important"
123
+ - !ruby/struct:Net::IMAP::MailboxList
124
+ attr:
125
+ - :Sent
126
+ - :Hasnochildren
127
+ delim: "/"
128
+ name: "[Gmail]/Sent Mail"
129
+ - !ruby/struct:Net::IMAP::MailboxList
130
+ attr:
131
+ - :Hasnochildren
132
+ - :Junk
133
+ delim: "/"
134
+ name: "[Gmail]/Spam"
135
+ - !ruby/struct:Net::IMAP::MailboxList
136
+ attr:
137
+ - :Hasnochildren
138
+ - :Flagged
139
+ delim: "/"
140
+ name: "[Gmail]/Starred"
141
+ - !ruby/struct:Net::IMAP::MailboxList
142
+ attr:
143
+ - :Trash
144
+ - :Hasnochildren
145
+ delim: "/"
146
+ name: "[Gmail]/Trash"
@@ -0,0 +1,113 @@
1
+ ---
2
+ LOGIN-9a890af1c86854f5170d99be6e10b8f1:
3
+ - - :return
4
+ - !ruby/struct:Net::IMAP::TaggedResponse
5
+ tag: RUBY0001
6
+ name: OK
7
+ data: !ruby/struct:Net::IMAP::ResponseText
8
+ code:
9
+ text: ki0zvkyi1yzgy7xu4f4dh46nqrcecm@gmail.com authenticated (Success)
10
+ raw_data: "RUBY0001 OK ki0zvkyi1yzgy7xu4f4dh46nqrcecm@gmail.com authenticated
11
+ (Success)\r\n"
12
+ - CAPABILITY: &1
13
+ - - IMAP4REV1
14
+ - UNSELECT
15
+ - IDLE
16
+ - NAMESPACE
17
+ - QUOTA
18
+ - ID
19
+ - XLIST
20
+ - CHILDREN
21
+ - X-GM-EXT-1
22
+ - UIDPLUS
23
+ - COMPRESS=DEFLATE
24
+ - ENABLE
25
+ - MOVE
26
+ - CONDSTORE
27
+ - ESEARCH
28
+ - UTF8=ACCEPT
29
+ LIST-e0583fa6130ee374cef031c01d8cc486:
30
+ - - :return
31
+ - !ruby/struct:Net::IMAP::TaggedResponse
32
+ tag: RUBY0002
33
+ name: OK
34
+ data: !ruby/struct:Net::IMAP::ResponseText
35
+ code:
36
+ text: Success
37
+ raw_data: "RUBY0002 OK Success\r\n"
38
+ - CAPABILITY: *1
39
+ LIST:
40
+ - !ruby/struct:Net::IMAP::MailboxList
41
+ attr:
42
+ - :Hasnochildren
43
+ delim: "/"
44
+ name: Awesome
45
+ - !ruby/struct:Net::IMAP::MailboxList
46
+ attr:
47
+ - :Hasnochildren
48
+ delim: "/"
49
+ name: Great
50
+ - !ruby/struct:Net::IMAP::MailboxList
51
+ attr:
52
+ - :Hasnochildren
53
+ delim: "/"
54
+ name: INBOX
55
+ - !ruby/struct:Net::IMAP::MailboxList
56
+ attr:
57
+ - :Noselect
58
+ - :Haschildren
59
+ delim: "/"
60
+ name: "[Gmail]"
61
+ LIST-94cc1ce946087e61b81baed886d31dbc:
62
+ - - :return
63
+ - !ruby/struct:Net::IMAP::TaggedResponse
64
+ tag: RUBY0003
65
+ name: OK
66
+ data: !ruby/struct:Net::IMAP::ResponseText
67
+ code:
68
+ text: Success
69
+ raw_data: "RUBY0003 OK Success\r\n"
70
+ - CAPABILITY: *1
71
+ LIST:
72
+ - !ruby/struct:Net::IMAP::MailboxList
73
+ attr:
74
+ - :Hasnochildren
75
+ - :All
76
+ delim: "/"
77
+ name: "[Gmail]/All Mail"
78
+ - !ruby/struct:Net::IMAP::MailboxList
79
+ attr:
80
+ - :Hasnochildren
81
+ - :Drafts
82
+ delim: "/"
83
+ name: "[Gmail]/Drafts"
84
+ - !ruby/struct:Net::IMAP::MailboxList
85
+ attr:
86
+ - :Hasnochildren
87
+ - :Important
88
+ delim: "/"
89
+ name: "[Gmail]/Important"
90
+ - !ruby/struct:Net::IMAP::MailboxList
91
+ attr:
92
+ - :Sent
93
+ - :Hasnochildren
94
+ delim: "/"
95
+ name: "[Gmail]/Sent Mail"
96
+ - !ruby/struct:Net::IMAP::MailboxList
97
+ attr:
98
+ - :Hasnochildren
99
+ - :Junk
100
+ delim: "/"
101
+ name: "[Gmail]/Spam"
102
+ - !ruby/struct:Net::IMAP::MailboxList
103
+ attr:
104
+ - :Hasnochildren
105
+ - :Flagged
106
+ delim: "/"
107
+ name: "[Gmail]/Starred"
108
+ - !ruby/struct:Net::IMAP::MailboxList
109
+ attr:
110
+ - :Trash
111
+ - :Hasnochildren
112
+ delim: "/"
113
+ name: "[Gmail]/Trash"
@@ -0,0 +1,42 @@
1
+ ---
2
+ LOGIN-9a890af1c86854f5170d99be6e10b8f1:
3
+ - - :return
4
+ - !ruby/struct:Net::IMAP::TaggedResponse
5
+ tag: RUBY0001
6
+ name: OK
7
+ data: !ruby/struct:Net::IMAP::ResponseText
8
+ code:
9
+ text: ki0zvkyi1yzgy7xu4f4dh46nqrcecm@gmail.com authenticated (Success)
10
+ raw_data: "RUBY0001 OK ki0zvkyi1yzgy7xu4f4dh46nqrcecm@gmail.com authenticated
11
+ (Success)\r\n"
12
+ - CAPABILITY: &1
13
+ - - IMAP4REV1
14
+ - UNSELECT
15
+ - IDLE
16
+ - NAMESPACE
17
+ - QUOTA
18
+ - ID
19
+ - XLIST
20
+ - CHILDREN
21
+ - X-GM-EXT-1
22
+ - UIDPLUS
23
+ - COMPRESS=DEFLATE
24
+ - ENABLE
25
+ - MOVE
26
+ - CONDSTORE
27
+ - ESEARCH
28
+ - UTF8=ACCEPT
29
+ LOGOUT-e76a09b7766d60a37ff9e1af527a143e:
30
+ - - :return
31
+ - !ruby/struct:Net::IMAP::TaggedResponse
32
+ tag: RUBY0002
33
+ name: OK
34
+ data: !ruby/struct:Net::IMAP::ResponseText
35
+ code:
36
+ text: 73 good day (Success)
37
+ raw_data: "RUBY0002 OK 73 good day (Success)\r\n"
38
+ - CAPABILITY: *1
39
+ BYE:
40
+ - !ruby/struct:Net::IMAP::ResponseText
41
+ code:
42
+ text: LOGOUT Requested