Skip to content

Commit 787394a

Browse files
committed
🔥 Use psych (>= 5.2.5) for encoding Data objects
This _is_ a breaking change, because objects that would previously encode with a `ruby/object:Net::IMAP:DataSubclass` tag will instead encode with a `ruby/data:Net::IMAP:DataSubclass` tag. Any YAML with the old tag will create an (effectively) empty data object: the data members will not be initialized (but ivars will be set).
1 parent faa83d6 commit 787394a

File tree

9 files changed

+31
-52
lines changed

9 files changed

+31
-52
lines changed

Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ gemspec
77
gem "digest"
88
gem "strscan"
99
gem "base64"
10+
gem "psych", ">= 5.2.5" # for Data serialization
1011

1112
gem "irb"
1213
gem "rake"

lib/net/imap.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3860,7 +3860,6 @@ def self.saslprep(string, **opts)
38603860
require_relative "imap/config"
38613861
require_relative "imap/command_data"
38623862
require_relative "imap/data_encoding"
3863-
require_relative "imap/data_lite"
38643863
require_relative "imap/flags"
38653864
require_relative "imap/response_data"
38663865
require_relative "imap/response_parser"

lib/net/imap/command_data.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
require "date"
44

55
require_relative "errors"
6-
require_relative "data_lite"
76

87
module Net
98
class IMAP < Protocol

lib/net/imap/connection_state.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
module Net
44
class IMAP
5-
class ConnectionState < Net::IMAP::Data # :nodoc:
5+
class ConnectionState < Data # :nodoc:
66
def self.define(symbol, *attrs)
77
symbol => Symbol
88
state = super(*attrs)

lib/net/imap/data_lite.rb

Lines changed: 0 additions & 18 deletions
This file was deleted.

test/net/imap/fixtures/response_parser/esearch_responses.yml

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
:response: "* ESEARCH (TAG \"A282\") MIN 2 COUNT 3\r\n"
55
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
66
name: ESEARCH
7-
data: !ruby/object:Net::IMAP::ESearchResult
7+
data: !ruby/data:Net::IMAP::ESearchResult
88
tag: A282
99
uid: false
1010
data:
@@ -18,7 +18,7 @@
1818
:response: "* ESEARCH (TAG \"A283\") ALL 2,10:11\r\n"
1919
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
2020
name: ESEARCH
21-
data: !ruby/object:Net::IMAP::ESearchResult
21+
data: !ruby/data:Net::IMAP::ESearchResult
2222
tag: A283
2323
uid: false
2424
data:
@@ -31,7 +31,7 @@
3131
:response: "* ESEARCH (TAG \"A284\")\r\n"
3232
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
3333
name: ESEARCH
34-
data: !ruby/object:Net::IMAP::ESearchResult
34+
data: !ruby/data:Net::IMAP::ESearchResult
3535
tag: A284
3636
uid: false
3737
data: []
@@ -41,7 +41,7 @@
4141
:response: "* ESEARCH (TAG \"A285\") ALL 43\r\n"
4242
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
4343
name: ESEARCH
44-
data: !ruby/object:Net::IMAP::ESearchResult
44+
data: !ruby/data:Net::IMAP::ESearchResult
4545
tag: A285
4646
uid: false
4747
data:
@@ -54,7 +54,7 @@
5454
:response: "* ESEARCH (TAG \"A284\") MIN 4\r\n"
5555
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
5656
name: ESEARCH
57-
data: !ruby/object:Net::IMAP::ESearchResult
57+
data: !ruby/data:Net::IMAP::ESearchResult
5858
tag: A284
5959
uid: false
6060
data:
@@ -66,7 +66,7 @@
6666
:response: "* ESEARCH (TAG \"A285\") UID MIN 7 MAX 3800\r\n"
6767
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
6868
name: ESEARCH
69-
data: !ruby/object:Net::IMAP::ESearchResult
69+
data: !ruby/data:Net::IMAP::ESearchResult
7070
tag: A285
7171
uid: true
7272
data:
@@ -80,7 +80,7 @@
8080
:response: "* ESEARCH (TAG \"A286\") COUNT 15\r\n"
8181
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
8282
name: ESEARCH
83-
data: !ruby/object:Net::IMAP::ESearchResult
83+
data: !ruby/data:Net::IMAP::ESearchResult
8484
tag: A286
8585
uid: false
8686
data:
@@ -92,7 +92,7 @@
9292
:response: "* ESEARCH (TAG \"A301\") UID ALL 17,900,901\r\n"
9393
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
9494
name: ESEARCH
95-
data: !ruby/object:Net::IMAP::ESearchResult
95+
data: !ruby/data:Net::IMAP::ESearchResult
9696
tag: A301
9797
uid: true
9898
data:
@@ -105,7 +105,7 @@
105105
:response: "* ESEARCH (TAG \"P283\") ALL 882,1102,3003,3005:3006\r\n"
106106
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
107107
name: ESEARCH
108-
data: !ruby/object:Net::IMAP::ESearchResult
108+
data: !ruby/data:Net::IMAP::ESearchResult
109109
tag: P283
110110
uid: false
111111
data:
@@ -118,7 +118,7 @@
118118
:response: "* ESEARCH (TAG \"G283\") ALL 3:15,27,29:103\r\n"
119119
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
120120
name: ESEARCH
121-
data: !ruby/object:Net::IMAP::ESearchResult
121+
data: !ruby/data:Net::IMAP::ESearchResult
122122
tag: G283
123123
uid: false
124124
data:
@@ -131,7 +131,7 @@
131131
:response: "* ESEARCH (TAG \"C283\") ALL 2,10:15,21\r\n"
132132
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
133133
name: ESEARCH
134-
data: !ruby/object:Net::IMAP::ESearchResult
134+
data: !ruby/data:Net::IMAP::ESearchResult
135135
tag: C283
136136
uid: false
137137
data:
@@ -144,7 +144,7 @@
144144
:response: "* ESEARCH (TAG \"C284\") MIN 2\r\n"
145145
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
146146
name: ESEARCH
147-
data: !ruby/object:Net::IMAP::ESearchResult
147+
data: !ruby/data:Net::IMAP::ESearchResult
148148
tag: C284
149149
uid: false
150150
data:
@@ -156,7 +156,7 @@
156156
:response: "* ESEARCH (TAG \"C285\") MIN 2 MAX 21\r\n"
157157
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
158158
name: ESEARCH
159-
data: !ruby/object:Net::IMAP::ESearchResult
159+
data: !ruby/data:Net::IMAP::ESearchResult
160160
tag: C285
161161
uid: false
162162
data:
@@ -170,7 +170,7 @@
170170
:response: "* ESEARCH (TAG \"C286\") MIN 2 MAX 21 COUNT 8\r\n"
171171
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
172172
name: ESEARCH
173-
data: !ruby/object:Net::IMAP::ESearchResult
173+
data: !ruby/data:Net::IMAP::ESearchResult
174174
tag: C286
175175
uid: false
176176
data:
@@ -186,7 +186,7 @@
186186
:response: "* ESEARCH (TAG \"C286\") MIN 2 ALL 2,10:15,21\r\n"
187187
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
188188
name: ESEARCH
189-
data: !ruby/object:Net::IMAP::ESearchResult
189+
data: !ruby/data:Net::IMAP::ESearchResult
190190
tag: C286
191191
uid: false
192192
data:
@@ -201,7 +201,7 @@
201201
:response: "* ESEARCH (TAG \"h\") ALL 1:3,5,8,13,21,42\r\n"
202202
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
203203
name: ESEARCH
204-
data: !ruby/object:Net::IMAP::ESearchResult
204+
data: !ruby/data:Net::IMAP::ESearchResult
205205
tag: h
206206
uid: false
207207
data:
@@ -214,7 +214,7 @@
214214
:response: "* ESEARCH UID COUNT 17 ALL 4:18,21,28\r\n"
215215
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
216216
name: ESEARCH
217-
data: !ruby/object:Net::IMAP::ESearchResult
217+
data: !ruby/data:Net::IMAP::ESearchResult
218218
tag:
219219
uid: true
220220
data:
@@ -229,7 +229,7 @@
229229
:response: "* ESEARCH (TAG \"a567\") UID COUNT 17 ALL 4:18,21,28\r\n"
230230
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
231231
name: ESEARCH
232-
data: !ruby/object:Net::IMAP::ESearchResult
232+
data: !ruby/data:Net::IMAP::ESearchResult
233233
tag: a567
234234
uid: true
235235
data:
@@ -244,7 +244,7 @@
244244
:response: "* ESEARCH COUNT 18 ALL 1:17,21\r\n"
245245
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
246246
name: ESEARCH
247-
data: !ruby/object:Net::IMAP::ESearchResult
247+
data: !ruby/data:Net::IMAP::ESearchResult
248248
tag:
249249
uid: false
250250
data:

test/net/imap/fixtures/response_parser/rfc7162_condstore_qresync_responses.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@
9797
:response: "* ESEARCH (TAG \"a\") ALL 1:3,5 MODSEQ 1236\r\n"
9898
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
9999
name: ESEARCH
100-
data: !ruby/object:Net::IMAP::ESearchResult
100+
data: !ruby/data:Net::IMAP::ESearchResult
101101
tag: a
102102
uid: false
103103
data:
@@ -112,7 +112,7 @@
112112
:response: "* ESEARCH (TAG \"a\") ALL 5,3,2,1 MODSEQ 1236\r\n"
113113
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
114114
name: ESEARCH
115-
data: !ruby/object:Net::IMAP::ESearchResult
115+
data: !ruby/data:Net::IMAP::ESearchResult
116116
tag: a
117117
uid: false
118118
data:
@@ -127,7 +127,7 @@
127127
:response: "* VANISHED (EARLIER) 41,43:116,118,120:211,214:540\r\n"
128128
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
129129
name: VANISHED
130-
data: !ruby/object:Net::IMAP::VanishedData
130+
data: !ruby/data:Net::IMAP::VanishedData
131131
uids: !ruby/object:Net::IMAP::SequenceSet
132132
string: 41,43:116,118,120:211,214:540
133133
earlier: true
@@ -137,7 +137,7 @@
137137
:response: "* VANISHED 405,407,410,425\r\n"
138138
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
139139
name: VANISHED
140-
data: !ruby/object:Net::IMAP::VanishedData
140+
data: !ruby/data:Net::IMAP::VanishedData
141141
uids: !ruby/object:Net::IMAP::SequenceSet
142142
string: '405,407,410,425'
143143
earlier: false

test/net/imap/fixtures/response_parser/rfc9394_partial.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@
88
:response: "* ESEARCH (TAG \"A01\") UID PARTIAL (-1:-100 200:250,252:300)\r\n"
99
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
1010
name: ESEARCH
11-
data: !ruby/object:Net::IMAP::ESearchResult
11+
data: !ruby/data:Net::IMAP::ESearchResult
1212
tag: A01
1313
uid: true
1414
data:
1515
- - PARTIAL
16-
- !ruby/object:Net::IMAP::ESearchResult::PartialResult
16+
- !ruby/data:Net::IMAP::ESearchResult::PartialResult
1717
range: !ruby/range
1818
begin: -100
1919
end: -1
@@ -26,12 +26,12 @@
2626
:response: "* ESEARCH (TAG \"A02\") UID PARTIAL (23500:24000 55500:56000)\r\n"
2727
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
2828
name: ESEARCH
29-
data: !ruby/object:Net::IMAP::ESearchResult
29+
data: !ruby/data:Net::IMAP::ESearchResult
3030
tag: A02
3131
uid: true
3232
data:
3333
- - PARTIAL
34-
- !ruby/object:Net::IMAP::ESearchResult::PartialResult
34+
- !ruby/data:Net::IMAP::ESearchResult::PartialResult
3535
range: !ruby/range
3636
begin: 23500
3737
end: 24000
@@ -44,12 +44,12 @@
4444
:response: "* ESEARCH (TAG \"A04\") UID PARTIAL (24000:24500 NIL)\r\n"
4545
:expected: !ruby/struct:Net::IMAP::UntaggedResponse
4646
name: ESEARCH
47-
data: !ruby/object:Net::IMAP::ESearchResult
47+
data: !ruby/data:Net::IMAP::ESearchResult
4848
tag: A04
4949
uid: true
5050
data:
5151
- - PARTIAL
52-
- !ruby/object:Net::IMAP::ESearchResult::PartialResult
52+
- !ruby/data:Net::IMAP::ESearchResult::PartialResult
5353
range: !ruby/range
5454
begin: 24000
5555
end: 24500

test/net/imap/regexp_collector.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
# frozen_string_literal: true
22

33
class RegexpCollector
4-
Data = Net::IMAP::Data
5-
64
ConstantRegexp = Data.define(:mod, :const_name, :regexp) do
75
def name = "%s::%s" % [mod, const_name]
86
end

0 commit comments

Comments
 (0)