diff --git a/Gemfile b/Gemfile index 43d65e46..90170f27 100644 --- a/Gemfile +++ b/Gemfile @@ -7,6 +7,7 @@ gemspec gem "digest" gem "strscan" gem "base64" +gem "psych", ">= 5.2.5" # for Data serialization gem "irb" gem "rake" diff --git a/lib/net/imap.rb b/lib/net/imap.rb index 4ac9d7a8..47127c93 100644 --- a/lib/net/imap.rb +++ b/lib/net/imap.rb @@ -3860,7 +3860,6 @@ def self.saslprep(string, **opts) require_relative "imap/config" require_relative "imap/command_data" require_relative "imap/data_encoding" -require_relative "imap/data_lite" require_relative "imap/flags" require_relative "imap/response_data" require_relative "imap/response_parser" diff --git a/lib/net/imap/command_data.rb b/lib/net/imap/command_data.rb index 3516b444..d1a0ab37 100644 --- a/lib/net/imap/command_data.rb +++ b/lib/net/imap/command_data.rb @@ -3,7 +3,6 @@ require "date" require_relative "errors" -require_relative "data_lite" module Net class IMAP < Protocol diff --git a/lib/net/imap/connection_state.rb b/lib/net/imap/connection_state.rb index 906e99b5..15bf5ed3 100644 --- a/lib/net/imap/connection_state.rb +++ b/lib/net/imap/connection_state.rb @@ -2,7 +2,7 @@ module Net class IMAP - class ConnectionState < Net::IMAP::Data # :nodoc: + class ConnectionState < Data # :nodoc: def self.define(symbol, *attrs) symbol => Symbol state = super(*attrs) diff --git a/lib/net/imap/data_lite.rb b/lib/net/imap/data_lite.rb deleted file mode 100644 index 2fafb7c4..00000000 --- a/lib/net/imap/data_lite.rb +++ /dev/null @@ -1,18 +0,0 @@ -# frozen_string_literal: true - -module Net - class IMAP - # DataLite subclasses ruby's +Data+ class and is aliased as Net::IMAP::Data, - # so that code using it won't need to be updated when it is removed. It - # adds support for yaml encoding. When psych adds support for Data, - # DataLite _will_ be removed. - # - # Previously, DataLite served as a reimplementation of +Data+ for ruby 3.1. - class DataLite < ::Data - def encode_with(coder) coder.map = to_h.transform_keys(&:to_s) end - def init_with(coder) initialize(**coder.map.transform_keys(&:to_sym)) end - end - - Data = DataLite - end -end diff --git a/test/net/imap/fixtures/response_parser/esearch_responses.yml b/test/net/imap/fixtures/response_parser/esearch_responses.yml index b76e0da1..4ce20088 100644 --- a/test/net/imap/fixtures/response_parser/esearch_responses.yml +++ b/test/net/imap/fixtures/response_parser/esearch_responses.yml @@ -4,7 +4,7 @@ :response: "* ESEARCH (TAG \"A282\") MIN 2 COUNT 3\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: ESEARCH - data: !ruby/object:Net::IMAP::ESearchResult + data: !ruby/data:Net::IMAP::ESearchResult tag: A282 uid: false data: @@ -18,7 +18,7 @@ :response: "* ESEARCH (TAG \"A283\") ALL 2,10:11\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: ESEARCH - data: !ruby/object:Net::IMAP::ESearchResult + data: !ruby/data:Net::IMAP::ESearchResult tag: A283 uid: false data: @@ -31,7 +31,7 @@ :response: "* ESEARCH (TAG \"A284\")\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: ESEARCH - data: !ruby/object:Net::IMAP::ESearchResult + data: !ruby/data:Net::IMAP::ESearchResult tag: A284 uid: false data: [] @@ -41,7 +41,7 @@ :response: "* ESEARCH (TAG \"A285\") ALL 43\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: ESEARCH - data: !ruby/object:Net::IMAP::ESearchResult + data: !ruby/data:Net::IMAP::ESearchResult tag: A285 uid: false data: @@ -54,7 +54,7 @@ :response: "* ESEARCH (TAG \"A284\") MIN 4\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: ESEARCH - data: !ruby/object:Net::IMAP::ESearchResult + data: !ruby/data:Net::IMAP::ESearchResult tag: A284 uid: false data: @@ -66,7 +66,7 @@ :response: "* ESEARCH (TAG \"A285\") UID MIN 7 MAX 3800\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: ESEARCH - data: !ruby/object:Net::IMAP::ESearchResult + data: !ruby/data:Net::IMAP::ESearchResult tag: A285 uid: true data: @@ -80,7 +80,7 @@ :response: "* ESEARCH (TAG \"A286\") COUNT 15\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: ESEARCH - data: !ruby/object:Net::IMAP::ESearchResult + data: !ruby/data:Net::IMAP::ESearchResult tag: A286 uid: false data: @@ -92,7 +92,7 @@ :response: "* ESEARCH (TAG \"A301\") UID ALL 17,900,901\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: ESEARCH - data: !ruby/object:Net::IMAP::ESearchResult + data: !ruby/data:Net::IMAP::ESearchResult tag: A301 uid: true data: @@ -105,7 +105,7 @@ :response: "* ESEARCH (TAG \"P283\") ALL 882,1102,3003,3005:3006\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: ESEARCH - data: !ruby/object:Net::IMAP::ESearchResult + data: !ruby/data:Net::IMAP::ESearchResult tag: P283 uid: false data: @@ -118,7 +118,7 @@ :response: "* ESEARCH (TAG \"G283\") ALL 3:15,27,29:103\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: ESEARCH - data: !ruby/object:Net::IMAP::ESearchResult + data: !ruby/data:Net::IMAP::ESearchResult tag: G283 uid: false data: @@ -131,7 +131,7 @@ :response: "* ESEARCH (TAG \"C283\") ALL 2,10:15,21\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: ESEARCH - data: !ruby/object:Net::IMAP::ESearchResult + data: !ruby/data:Net::IMAP::ESearchResult tag: C283 uid: false data: @@ -144,7 +144,7 @@ :response: "* ESEARCH (TAG \"C284\") MIN 2\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: ESEARCH - data: !ruby/object:Net::IMAP::ESearchResult + data: !ruby/data:Net::IMAP::ESearchResult tag: C284 uid: false data: @@ -156,7 +156,7 @@ :response: "* ESEARCH (TAG \"C285\") MIN 2 MAX 21\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: ESEARCH - data: !ruby/object:Net::IMAP::ESearchResult + data: !ruby/data:Net::IMAP::ESearchResult tag: C285 uid: false data: @@ -170,7 +170,7 @@ :response: "* ESEARCH (TAG \"C286\") MIN 2 MAX 21 COUNT 8\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: ESEARCH - data: !ruby/object:Net::IMAP::ESearchResult + data: !ruby/data:Net::IMAP::ESearchResult tag: C286 uid: false data: @@ -186,7 +186,7 @@ :response: "* ESEARCH (TAG \"C286\") MIN 2 ALL 2,10:15,21\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: ESEARCH - data: !ruby/object:Net::IMAP::ESearchResult + data: !ruby/data:Net::IMAP::ESearchResult tag: C286 uid: false data: @@ -201,7 +201,7 @@ :response: "* ESEARCH (TAG \"h\") ALL 1:3,5,8,13,21,42\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: ESEARCH - data: !ruby/object:Net::IMAP::ESearchResult + data: !ruby/data:Net::IMAP::ESearchResult tag: h uid: false data: @@ -214,7 +214,7 @@ :response: "* ESEARCH UID COUNT 17 ALL 4:18,21,28\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: ESEARCH - data: !ruby/object:Net::IMAP::ESearchResult + data: !ruby/data:Net::IMAP::ESearchResult tag: uid: true data: @@ -229,7 +229,7 @@ :response: "* ESEARCH (TAG \"a567\") UID COUNT 17 ALL 4:18,21,28\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: ESEARCH - data: !ruby/object:Net::IMAP::ESearchResult + data: !ruby/data:Net::IMAP::ESearchResult tag: a567 uid: true data: @@ -244,7 +244,7 @@ :response: "* ESEARCH COUNT 18 ALL 1:17,21\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: ESEARCH - data: !ruby/object:Net::IMAP::ESearchResult + data: !ruby/data:Net::IMAP::ESearchResult tag: uid: false data: diff --git a/test/net/imap/fixtures/response_parser/rfc7162_condstore_qresync_responses.yml b/test/net/imap/fixtures/response_parser/rfc7162_condstore_qresync_responses.yml index 9ad95015..fbb24f4a 100644 --- a/test/net/imap/fixtures/response_parser/rfc7162_condstore_qresync_responses.yml +++ b/test/net/imap/fixtures/response_parser/rfc7162_condstore_qresync_responses.yml @@ -97,7 +97,7 @@ :response: "* ESEARCH (TAG \"a\") ALL 1:3,5 MODSEQ 1236\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: ESEARCH - data: !ruby/object:Net::IMAP::ESearchResult + data: !ruby/data:Net::IMAP::ESearchResult tag: a uid: false data: @@ -112,7 +112,7 @@ :response: "* ESEARCH (TAG \"a\") ALL 5,3,2,1 MODSEQ 1236\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: ESEARCH - data: !ruby/object:Net::IMAP::ESearchResult + data: !ruby/data:Net::IMAP::ESearchResult tag: a uid: false data: @@ -127,7 +127,7 @@ :response: "* VANISHED (EARLIER) 41,43:116,118,120:211,214:540\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: VANISHED - data: !ruby/object:Net::IMAP::VanishedData + data: !ruby/data:Net::IMAP::VanishedData uids: !ruby/object:Net::IMAP::SequenceSet string: 41,43:116,118,120:211,214:540 earlier: true @@ -137,7 +137,7 @@ :response: "* VANISHED 405,407,410,425\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: VANISHED - data: !ruby/object:Net::IMAP::VanishedData + data: !ruby/data:Net::IMAP::VanishedData uids: !ruby/object:Net::IMAP::SequenceSet string: '405,407,410,425' earlier: false diff --git a/test/net/imap/fixtures/response_parser/rfc9394_partial.yml b/test/net/imap/fixtures/response_parser/rfc9394_partial.yml index 19498e3e..9a055eb4 100644 --- a/test/net/imap/fixtures/response_parser/rfc9394_partial.yml +++ b/test/net/imap/fixtures/response_parser/rfc9394_partial.yml @@ -8,12 +8,12 @@ :response: "* ESEARCH (TAG \"A01\") UID PARTIAL (-1:-100 200:250,252:300)\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: ESEARCH - data: !ruby/object:Net::IMAP::ESearchResult + data: !ruby/data:Net::IMAP::ESearchResult tag: A01 uid: true data: - - PARTIAL - - !ruby/object:Net::IMAP::ESearchResult::PartialResult + - !ruby/data:Net::IMAP::ESearchResult::PartialResult range: !ruby/range begin: -100 end: -1 @@ -26,12 +26,12 @@ :response: "* ESEARCH (TAG \"A02\") UID PARTIAL (23500:24000 55500:56000)\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: ESEARCH - data: !ruby/object:Net::IMAP::ESearchResult + data: !ruby/data:Net::IMAP::ESearchResult tag: A02 uid: true data: - - PARTIAL - - !ruby/object:Net::IMAP::ESearchResult::PartialResult + - !ruby/data:Net::IMAP::ESearchResult::PartialResult range: !ruby/range begin: 23500 end: 24000 @@ -44,12 +44,12 @@ :response: "* ESEARCH (TAG \"A04\") UID PARTIAL (24000:24500 NIL)\r\n" :expected: !ruby/struct:Net::IMAP::UntaggedResponse name: ESEARCH - data: !ruby/object:Net::IMAP::ESearchResult + data: !ruby/data:Net::IMAP::ESearchResult tag: A04 uid: true data: - - PARTIAL - - !ruby/object:Net::IMAP::ESearchResult::PartialResult + - !ruby/data:Net::IMAP::ESearchResult::PartialResult range: !ruby/range begin: 24000 end: 24500 diff --git a/test/net/imap/fixtures/response_parser/uidplus_extension.yml b/test/net/imap/fixtures/response_parser/uidplus_extension.yml index bbb1c0bc..eb4a2d34 100644 --- a/test/net/imap/fixtures/response_parser/uidplus_extension.yml +++ b/test/net/imap/fixtures/response_parser/uidplus_extension.yml @@ -10,7 +10,7 @@ data: !ruby/struct:Net::IMAP::ResponseText code: !ruby/struct:Net::IMAP::ResponseCode name: APPENDUID - data: !ruby/object:Net::IMAP::AppendUIDData + data: !ruby/data:Net::IMAP::AppendUIDData uidvalidity: 38505 assigned_uids: !ruby/object:Net::IMAP::SequenceSet string: '3955' @@ -26,7 +26,7 @@ data: !ruby/struct:Net::IMAP::ResponseText code: !ruby/struct:Net::IMAP::ResponseCode name: COPYUID - data: !ruby/object:Net::IMAP::CopyUIDData + data: !ruby/data:Net::IMAP::CopyUIDData uidvalidity: 38505 source_uids: !ruby/object:Net::IMAP::SequenceSet string: 304,319:320 @@ -43,7 +43,7 @@ data: !ruby/struct:Net::IMAP::ResponseText code: !ruby/struct:Net::IMAP::ResponseCode name: APPENDUID - data: !ruby/object:Net::IMAP::AppendUIDData + data: !ruby/data:Net::IMAP::AppendUIDData uidvalidity: 2 assigned_uids: !ruby/object:Net::IMAP::SequenceSet string: 4,6:7,9 @@ -62,7 +62,7 @@ data: !ruby/struct:Net::IMAP::ResponseText code: !ruby/struct:Net::IMAP::ResponseCode name: COPYUID - data: !ruby/object:Net::IMAP::CopyUIDData + data: !ruby/data:Net::IMAP::CopyUIDData uidvalidity: 9999 source_uids: !ruby/object:Net::IMAP::SequenceSet string: 20:19,500:495 diff --git a/test/net/imap/regexp_collector.rb b/test/net/imap/regexp_collector.rb index 9f5f584d..ff3b0054 100644 --- a/test/net/imap/regexp_collector.rb +++ b/test/net/imap/regexp_collector.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true class RegexpCollector - Data = Net::IMAP::Data - ConstantRegexp = Data.define(:mod, :const_name, :regexp) do def name = "%s::%s" % [mod, const_name] end