Skip to content

Commit 05766fb

Browse files
committed
🗑️ Deprecate Net::IMAP::MessageSet
1 parent cb41df9 commit 05766fb

File tree

2 files changed

+23
-10
lines changed

2 files changed

+23
-10
lines changed

lib/net/imap/command_data.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ def initialize(data)
179179
end
180180
end
181181

182+
# *DEPRECATED*. Replaced by SequenceSet.
182183
class MessageSet # :nodoc:
183184
def send_data(imap, tag)
184185
imap.__send__(:put_string, format_internal(@data))
@@ -192,6 +193,15 @@ def validate
192193

193194
def initialize(data)
194195
@data = data
196+
warn "DEPRECATED: #{MessageSet} should be replaced with #{SequenceSet}."
197+
begin
198+
# to ensure the input works with SequenceSet, too
199+
SequenceSet.new(data)
200+
rescue
201+
warn "MessageSet input is incompatible with SequenceSet: [%s] %s" % [
202+
$!.class, $!.message
203+
]
204+
end
195205
end
196206

197207
def format_internal(data)

test/net/imap/test_imap.rb

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -626,17 +626,20 @@ def test_send_invalid_number
626626
imap.__send__(:send_command, "TEST", 2**32)
627627
end
628628
# MessageSet numbers may be non-zero uint32
629-
assert_raise(Net::IMAP::DataFormatError) do
630-
imap.__send__(:send_command, "TEST", Net::IMAP::MessageSet.new(-1))
631-
end
632-
assert_raise(Net::IMAP::DataFormatError) do
633-
imap.__send__(:send_command, "TEST", Net::IMAP::MessageSet.new(0))
634-
end
635-
imap.__send__(:send_command, "TEST", Net::IMAP::MessageSet.new(1))
636-
imap.__send__(:send_command, "TEST", Net::IMAP::MessageSet.new(2**32 - 1))
637-
assert_raise(Net::IMAP::DataFormatError) do
638-
imap.__send__(:send_command, "TEST", Net::IMAP::MessageSet.new(2**32))
629+
stderr = EnvUtil.verbose_warning do
630+
assert_raise(Net::IMAP::DataFormatError) do
631+
imap.__send__(:send_command, "TEST", Net::IMAP::MessageSet.new(-1))
632+
end
633+
assert_raise(Net::IMAP::DataFormatError) do
634+
imap.__send__(:send_command, "TEST", Net::IMAP::MessageSet.new(0))
635+
end
636+
imap.__send__(:send_command, "TEST", Net::IMAP::MessageSet.new(1))
637+
imap.__send__(:send_command, "TEST", Net::IMAP::MessageSet.new(2**32 - 1))
638+
assert_raise(Net::IMAP::DataFormatError) do
639+
imap.__send__(:send_command, "TEST", Net::IMAP::MessageSet.new(2**32))
640+
end
639641
end
642+
assert_match(/DEPRECATED:.+MessageSet.+replace.+with.+SequenceSet/, stderr)
640643
# SequenceSet numbers may be non-zero uint3, and -1 is translated to *
641644
imap.__send__(:send_command, "TEST", Net::IMAP::SequenceSet.new(-1))
642645
assert_raise(Net::IMAP::DataFormatError) do

0 commit comments

Comments
 (0)