@@ -30,6 +30,10 @@ def encoding
30
30
def reset
31
31
@line_no = 0
32
32
end
33
+
34
+ def winsize
35
+ [ 10 , 20 ]
36
+ end
33
37
end
34
38
35
39
def setup
@@ -213,6 +217,75 @@ def test_echo_on_assignment
213
217
assert_equal ( "" , out )
214
218
end
215
219
220
+ def test_omit_on_assignment
221
+ input = TestInputMethod . new ( [
222
+ "a = [1] * 100\n " ,
223
+ "a\n " ,
224
+ ] )
225
+ value = [ 1 ] * 100
226
+ irb = IRB ::Irb . new ( IRB ::WorkSpace . new ( Object . new ) , input )
227
+ irb . context . return_format = "=> %s\n "
228
+
229
+ irb . context . echo = true
230
+ irb . context . echo_on_assignment = false
231
+ irb . context . omit_on_assignment = true
232
+ out , err = capture_io do
233
+ irb . eval_input
234
+ end
235
+ assert_empty err
236
+ assert_equal ( "=> #{ value . inspect } \n " , out )
237
+
238
+ input . reset
239
+ irb . context . echo = true
240
+ irb . context . echo_on_assignment = true
241
+ irb . context . omit_on_assignment = true
242
+ out , err = capture_io do
243
+ irb . eval_input
244
+ end
245
+ assert_empty err
246
+ assert_equal ( "=> #{ value . inspect [ 0 ..( input . winsize . last - 9 ) ] } ...\e [0m\n => #{ value . inspect } \n " , out )
247
+
248
+ input . reset
249
+ irb . context . echo = true
250
+ irb . context . echo_on_assignment = true
251
+ irb . context . omit_on_assignment = false
252
+ out , err = capture_io do
253
+ irb . eval_input
254
+ end
255
+ assert_empty err
256
+ assert_equal ( "=> #{ value . inspect } \n => #{ value . inspect } \n " , out )
257
+
258
+ input . reset
259
+ irb . context . echo = false
260
+ irb . context . echo_on_assignment = false
261
+ irb . context . omit_on_assignment = true
262
+ out , err = capture_io do
263
+ irb . eval_input
264
+ end
265
+ assert_empty err
266
+ assert_equal ( "" , out )
267
+
268
+ input . reset
269
+ irb . context . echo = false
270
+ irb . context . echo_on_assignment = true
271
+ irb . context . omit_on_assignment = true
272
+ out , err = capture_io do
273
+ irb . eval_input
274
+ end
275
+ assert_empty err
276
+ assert_equal ( "" , out )
277
+
278
+ input . reset
279
+ irb . context . echo = false
280
+ irb . context . echo_on_assignment = true
281
+ irb . context . omit_on_assignment = false
282
+ out , err = capture_io do
283
+ irb . eval_input
284
+ end
285
+ assert_empty err
286
+ assert_equal ( "" , out )
287
+ end
288
+
216
289
def test_echo_on_assignment_conf
217
290
# Default
218
291
IRB . conf [ :ECHO ] = nil
@@ -221,22 +294,26 @@ def test_echo_on_assignment_conf
221
294
irb = IRB ::Irb . new ( IRB ::WorkSpace . new ( Object . new ) , input )
222
295
223
296
assert ( irb . context . echo? , "echo? should be true by default" )
224
- refute ( irb . context . echo_on_assignment? , "echo_on_assignment? should be false by default" )
297
+ assert ( irb . context . echo_on_assignment? , "echo_on_assignment? should be true by default" )
298
+ assert ( irb . context . omit_on_assignment? , "omit_on_assignment? should be true by default" )
225
299
226
300
# Explicitly set :ECHO to false
227
301
IRB . conf [ :ECHO ] = false
228
302
irb = IRB ::Irb . new ( IRB ::WorkSpace . new ( Object . new ) , input )
229
303
230
304
refute ( irb . context . echo? , "echo? should be false when IRB.conf[:ECHO] is set to false" )
231
- refute ( irb . context . echo_on_assignment? , "echo_on_assignment? should be false by default" )
305
+ assert ( irb . context . echo_on_assignment? , "echo_on_assignment? should be true by default" )
306
+ assert ( irb . context . omit_on_assignment? , "omit_on_assignment? should be true by default" )
232
307
233
308
# Explicitly set :ECHO_ON_ASSIGNMENT to true
234
309
IRB . conf [ :ECHO ] = nil
235
- IRB . conf [ :ECHO_ON_ASSIGNMENT ] = true
310
+ IRB . conf [ :ECHO_ON_ASSIGNMENT ] = false
311
+ IRB . conf [ :OMIT_ON_ASSIGNMENT ] = false
236
312
irb = IRB ::Irb . new ( IRB ::WorkSpace . new ( Object . new ) , input )
237
313
238
314
assert ( irb . context . echo? , "echo? should be true by default" )
239
- assert ( irb . context . echo_on_assignment? , "echo_on_assignment? should be true when IRB.conf[:ECHO_ON_ASSIGNMENT] is set to true" )
315
+ refute ( irb . context . echo_on_assignment? , "echo_on_assignment? should be false when IRB.conf[:ECHO_ON_ASSIGNMENT] is set to false" )
316
+ refute ( irb . context . omit_on_assignment? , "omit_on_assignment? should be false when IRB.conf[:OMIT_ON_ASSIGNMENT] is set to false" )
240
317
end
241
318
242
319
def test_multiline_output_on_default_inspector
0 commit comments