[ruby/openssl] Add support for gets(chomp: true)
.
https://github.com/ruby/openssl/commit/8aa3849cff
This commit is contained in:
parent
08d4e5ebef
commit
f7178045bb
@ -229,7 +229,7 @@ module OpenSSL::Buffering
|
||||
#
|
||||
# Unlike IO#gets the separator must be provided if a limit is provided.
|
||||
|
||||
def gets(eol=$/, limit=nil)
|
||||
def gets(eol=$/, limit=nil, chomp: false)
|
||||
idx = @rbuffer.index(eol)
|
||||
until @eof
|
||||
break if idx
|
||||
@ -244,7 +244,11 @@ module OpenSSL::Buffering
|
||||
if size && limit && limit >= 0
|
||||
size = [size, limit].min
|
||||
end
|
||||
consume_rbuff(size)
|
||||
line = consume_rbuff(size)
|
||||
if chomp && line
|
||||
line.chomp!(eol)
|
||||
end
|
||||
line
|
||||
end
|
||||
|
||||
##
|
||||
|
@ -115,6 +115,17 @@ module OpenSSL::TestPairM
|
||||
}
|
||||
end
|
||||
|
||||
def test_gets_chomp
|
||||
ssl_pair {|s1, s2|
|
||||
s1 << "line1\r\nline2\r\nline3\r\n"
|
||||
s1.close
|
||||
|
||||
assert_equal("line1", s2.gets("\r\n", chomp: true))
|
||||
assert_equal("line2\r\n", s2.gets("\r\n", chomp: false))
|
||||
assert_equal("line3", s2.gets(chomp: true))
|
||||
}
|
||||
end
|
||||
|
||||
def test_gets_eof_limit
|
||||
ssl_pair {|s1, s2|
|
||||
s1.write("hello")
|
||||
|
Loading…
x
Reference in New Issue
Block a user