@@ -64,6 +64,44 @@ def uid_mapping
64
64
end
65
65
end
66
66
67
+ # This replaces the `Data.define` polyfill that's used by net-imap 0.5.
68
+ class Data_define__uidvalidity___assigned_uids_ # :no-doc:
69
+ attr_reader :uidvalidity , :assigned_uids
70
+
71
+ def self . []( ...) new ( ...) end
72
+ def self . new ( uidvalidity = ( args = false ; nil ) ,
73
+ assigned_uids = nil ,
74
+ **kwargs )
75
+ if kwargs . empty?
76
+ super ( uidvalidity : uidvalidity , assigned_uids : assigned_uids )
77
+ elsif !args
78
+ super
79
+ else
80
+ raise ArgumentError , "sent both positional and keyword args"
81
+ end
82
+ end
83
+
84
+ def ==( other )
85
+ self . class == other . class &&
86
+ self . uidvalidity == other . uidvalidity &&
87
+ self . assigned_uids == other . assigned_uids
88
+ end
89
+
90
+ def eql? ( other )
91
+ self . class . eql? ( other . class ) &&
92
+ self . uidvalidity . eql? ( other . uidvalidity ) &&
93
+ self . assigned_uids . eql? ( other . assigned_uids )
94
+ end
95
+
96
+ def hash ; [ self . class , uidvalidity , assigned_uids ] . hash end
97
+
98
+ def initialize ( uidvalidity :, assigned_uids :)
99
+ @uidvalidity = uidvalidity
100
+ @assigned_uids = assigned_uids
101
+ freeze
102
+ end
103
+ end
104
+
67
105
# >>>
68
106
# *NOTE:* <em>AppendUIDData will replace UIDPlusData for +APPENDUID+ in the
69
107
# +0.6.0+ release.</em> To use AppendUIDData before +0.6.0+, set
@@ -80,7 +118,7 @@ def uid_mapping
80
118
# == Required capability
81
119
# Requires either +UIDPLUS+ [RFC4315[https://www.rfc-editor.org/rfc/rfc4315]]
82
120
# or +IMAP4rev2+ capability.
83
- class AppendUIDData < Data . define ( :uidvalidity , :assigned_uids )
121
+ class AppendUIDData < Data_define__uidvalidity___assigned_uids_
84
122
def initialize ( uidvalidity :, assigned_uids :)
85
123
uidvalidity = Integer ( uidvalidity )
86
124
assigned_uids = SequenceSet [ assigned_uids ]
@@ -108,6 +146,50 @@ def size
108
146
end
109
147
end
110
148
149
+ # This replaces the `Data.define` polyfill that's used by net-imap 0.5.
150
+ class Data_define__uidvalidity___source_uids___assigned_uids_ # :no-doc:
151
+ attr_reader :uidvalidity , :source_uids , :assigned_uids
152
+
153
+ def self . []( ...) new ( ...) end
154
+ def self . new ( uidvalidity = ( args = false ; nil ) ,
155
+ source_uids = nil ,
156
+ assigned_uids = nil ,
157
+ **kwargs )
158
+ if kwargs . empty?
159
+ super ( uidvalidity : uidvalidity ,
160
+ source_uids : source_uids ,
161
+ assigned_uids : assigned_uids )
162
+ elsif !args
163
+ super ( **kwargs )
164
+ else
165
+ raise ArgumentError , "sent both positional and keyword args"
166
+ end
167
+ end
168
+
169
+ def initialize ( uidvalidity :, source_uids :, assigned_uids :)
170
+ @uidvalidity = uidvalidity
171
+ @source_uids = source_uids
172
+ @assigned_uids = assigned_uids
173
+ freeze
174
+ end
175
+
176
+ def ==( other )
177
+ self . class == other . class &&
178
+ self . uidvalidity == other . uidvalidity &&
179
+ self . source_uids == other . source_uids
180
+ self . assigned_uids == other . assigned_uids
181
+ end
182
+
183
+ def eql? ( other )
184
+ self . class . eql? ( other . class ) &&
185
+ self . uidvalidity . eql? ( other . uidvalidity ) &&
186
+ self . source_uids . eql? ( other . source_uids )
187
+ self . assigned_uids . eql? ( other . assigned_uids )
188
+ end
189
+
190
+ def hash ; [ self . class , uidvalidity , source_uids , assigned_uids ] . hash end
191
+ end
192
+
111
193
# >>>
112
194
# *NOTE:* <em>CopyUIDData will replace UIDPlusData for +COPYUID+ in the
113
195
# +0.6.0+ release.</em> To use CopyUIDData before +0.6.0+, set
@@ -134,7 +216,7 @@ def size
134
216
# == Required capability
135
217
# Requires either +UIDPLUS+ [RFC4315[https://www.rfc-editor.org/rfc/rfc4315]]
136
218
# or +IMAP4rev2+ capability.
137
- class CopyUIDData < Data . define ( :uidvalidity , :source_uids , :assigned_uids )
219
+ class CopyUIDData < Data_define__uidvalidity___source_uids___assigned_uids_
138
220
def initialize ( uidvalidity :, source_uids :, assigned_uids :)
139
221
uidvalidity = Integer ( uidvalidity )
140
222
source_uids = SequenceSet [ source_uids ]
0 commit comments