From 6e97242bb9463566079883eb3fa917d17fb5961b Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Tue, 19 Jun 2018 09:45:48 +0800 Subject: [PATCH] Monkey patch in https://github.com/ruby/ruby/commit/7830a950efa6d312e7c662beabaa0f8d7b4e0a23 --- lib/freedom_patches/net.rb | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 lib/freedom_patches/net.rb diff --git a/lib/freedom_patches/net.rb b/lib/freedom_patches/net.rb new file mode 100644 index 00000000000..db7091bda93 --- /dev/null +++ b/lib/freedom_patches/net.rb @@ -0,0 +1,49 @@ +if Gem::Version.new(RUBY_VERSION) == Gem::Version.new("2.5.1") + require 'net/pop' + + module Net + class POP3 + def inspect + +"#<#{self.class} #{@address}:#{@port} open=#{@started}>" + end + end + + class POPMail + def inspect + +"#<#{self.class} #{@number}#{@deleted ? ' deleted' : ''}>" + end + + def pop(dest = +'', &block) # :yield: message_chunk + if block_given? + @command.retr(@number, &block) + nil + else + @command.retr(@number) do |chunk| + dest << chunk + end + dest + end + end + + def top(lines, dest = +'') + @command.top(@number, lines) do |chunk| + dest << chunk + end + dest + end + + def header(dest = +'') + top(0, dest) + end + end + + class POP3Command + def inspect + +"#<#{self.class} socket=#{@socket}>" + end + end + end +elsif Gem::Version.new(RUBY_VERSION) > Gem::Version.new("2.5.1") + # See https://github.com/ruby/ruby/commit/7830a950efa6d312e7c662beabaa0f8d7b4e0a23 + raise 'This monkey patch is no longer required.' +end