File tree Expand file tree Collapse file tree 2 files changed +13
-2
lines changed Expand file tree Collapse file tree 2 files changed +13
-2
lines changed Original file line number Diff line number Diff line change @@ -93,14 +93,14 @@ def gets(sep_or_limit=$/, limit=Float::INFINITY)
93
93
lim = limit
94
94
end
95
95
96
- delim = if sep_string . length == 0
96
+ delim = if sep_string && sep_string . length == 0
97
97
"#{ $/} #{ $/} "
98
98
else
99
99
sep_string
100
100
end
101
101
102
102
loop do
103
- at = @buffer . index ( delim )
103
+ at = @buffer . index ( delim ) if delim
104
104
if at
105
105
offset = [ at + delim . length , lim ] . min
106
106
@pos += offset
Original file line number Diff line number Diff line change @@ -91,6 +91,12 @@ def test_gets_when_no_such_delimiter_exists_in_stream_should_read_to_EOF
91
91
assert @file . eof?
92
92
end
93
93
94
+ def test_gets_when_nil_delimiter_should_fread_to_EOF
95
+ @sftp . expects ( :read! ) . times ( 2 ) . returns ( "hello world\n goodbye world\n \n farewell!\n " , nil )
96
+ assert_equal "hello world\n goodbye world\n \n farewell!\n " , @file . gets ( nil )
97
+ assert @file . eof?
98
+ end
99
+
94
100
def test_gets_with_integer_argument_should_read_number_of_bytes
95
101
@sftp . expects ( :read! ) . returns ( "hello world\n goodbye world\n \n farewell!\n " )
96
102
assert_equal "hello w" , @file . gets ( 7 )
@@ -111,6 +117,11 @@ def test_gets_when_no_such_delimiter_exists_in_stream_but_limit_provided_should_
111
117
assert_equal "hello w" , @file . gets ( "z" , 7 )
112
118
end
113
119
120
+ def test_gets_when_nil_delimiter_and_limit_provided_should_read_to_limit
121
+ @sftp . expects ( :read! ) . returns ( "hello world\n goodbye world\n \n farewell!\n " )
122
+ assert_equal "hello w" , @file . gets ( nil , 7 )
123
+ end
124
+
114
125
def test_gets_at_EOF_should_return_nil
115
126
@sftp . expects ( :read! ) . returns ( nil )
116
127
assert_nil @file . gets
You can’t perform that action at this time.
0 commit comments