From 555ea8334451c5ccd881e68b8b7ddc15745e66e3 Mon Sep 17 00:00:00 2001 From: aycabta Date: Sat, 19 Sep 2020 04:25:59 +0900 Subject: [ruby/irb] Drop OMIT_ON_ASSIGNMENT and add :truncate option for ECHO_ON_ASSIGNMENT https://github.com/ruby/irb/commit/4c89b0775b --- lib/irb.rb | 2 +- lib/irb/context.rb | 35 +++++++++++++---------------------- lib/irb/init.rb | 7 ++----- test/irb/test_context.rb | 28 ++++++---------------------- 4 files changed, 22 insertions(+), 50 deletions(-) diff --git a/lib/irb.rb b/lib/irb.rb index d8e1209f2c..bdf14f4170 100644 --- a/lib/irb.rb +++ b/lib/irb.rb @@ -542,7 +542,7 @@ module IRB if @context.echo? if assignment_expression?(line) if @context.echo_on_assignment? - output_value(@context.omit_on_assignment?) + output_value(@context.echo_on_assignment? == :truncate) end else output_value diff --git a/lib/irb/context.rb b/lib/irb/context.rb index 4f001729e1..0d358de6ff 100644 --- a/lib/irb/context.rb +++ b/lib/irb/context.rb @@ -131,12 +131,7 @@ module IRB @echo_on_assignment = IRB.conf[:ECHO_ON_ASSIGNMENT] if @echo_on_assignment.nil? - @echo_on_assignment = true - end - - @omit_on_assignment = IRB.conf[:OMIT_ON_ASSIGNMENT] - if @omit_on_assignment.nil? - @omit_on_assignment = true + @echo_on_assignment = :truncate end @newline_before_multiline_output = IRB.conf[:NEWLINE_BEFORE_MULTILINE_OUTPUT] @@ -256,27 +251,24 @@ module IRB attr_accessor :echo # Whether to echo for assignment expressions # - # Uses IRB.conf[:ECHO_ON_ASSIGNMENT] if available, or defaults to +true+. + # If set to +false+, the value of assignment will not be shown. + # + # If set to +true+, the value of assignment will be shown. + # + # If set to +:truncate+, the value of assignment will be shown and truncated. + # + # It defaults to +:truncate+. # # a = "omg" # #=> omg + # a = "omg" * 10 + # #=> omgomgomgomgomgomgomg... # IRB.CurrentContext.echo_on_assignment = false # a = "omg" + # IRB.CurrentContext.echo_on_assignment = true + # a = "omg" + # #=> omgomgomgomgomgomgomgomgomgomg attr_accessor :echo_on_assignment - # Whether to omit echo for assignment expressions - # - # Uses IRB.conf[:OMIT_ON_ASSIGNMENT] if available, or defaults to +true+. - # - # a = [1] * 10 - # #=> [1, 1, 1, 1, 1, 1, 1, 1, ... - # [1] * 10 - # #=> [1, 1, 1, 1, 1, 1, 1, 1, 1, 1] - # IRB.CurrentContext.omit_on_assignment = false - # a = [1] * 10 - # #=> [1, 1, 1, 1, 1, 1, 1, 1, 1, 1] - # [1] * 10 - # #=> [1, 1, 1, 1, 1, 1, 1, 1, 1, 1] - attr_accessor :omit_on_assignment # Whether a newline is put before multiline output. # # Uses IRB.conf[:NEWLINE_BEFORE_MULTILINE_OUTPUT] if available, @@ -325,7 +317,6 @@ module IRB alias ignore_eof? ignore_eof alias echo? echo alias echo_on_assignment? echo_on_assignment - alias omit_on_assignment? omit_on_assignment alias newline_before_multiline_output? newline_before_multiline_output # Returns whether messages are displayed or not. diff --git a/lib/irb/init.rb b/lib/irb/init.rb index 44383609bd..e60b5266ff 100644 --- a/lib/irb/init.rb +++ b/lib/irb/init.rb @@ -52,7 +52,6 @@ module IRB # :nodoc: @CONF[:IGNORE_EOF] = false @CONF[:ECHO] = nil @CONF[:ECHO_ON_ASSIGNMENT] = nil - @CONF[:OMIT_ON_ASSIGNMENT] = nil @CONF[:VERBOSE] = nil @CONF[:EVAL_HISTORY] = nil @@ -178,10 +177,8 @@ module IRB # :nodoc: @CONF[:ECHO_ON_ASSIGNMENT] = true when "--noecho-on-assignment" @CONF[:ECHO_ON_ASSIGNMENT] = false - when "--omit-on-assignment" - @CONF[:OMIT_ON_ASSIGNMENT] = true - when "--noomit-on-assignment" - @CONF[:OMIT_ON_ASSIGNMENT] = false + when "--truncate-echo-on-assignment" + @CONF[:ECHO_ON_ASSIGNMENT] = :truncate when "--verbose" @CONF[:VERBOSE] = true when "--noverbose" diff --git a/test/irb/test_context.rb b/test/irb/test_context.rb index fa628bba46..a57557af94 100644 --- a/test/irb/test_context.rb +++ b/test/irb/test_context.rb @@ -228,7 +228,6 @@ module TestIRB irb.context.echo = true irb.context.echo_on_assignment = false - irb.context.omit_on_assignment = true out, err = capture_io do irb.eval_input end @@ -237,8 +236,7 @@ module TestIRB input.reset irb.context.echo = true - irb.context.echo_on_assignment = true - irb.context.omit_on_assignment = true + irb.context.echo_on_assignment = :truncate out, err = capture_io do irb.eval_input end @@ -248,7 +246,6 @@ module TestIRB input.reset irb.context.echo = true irb.context.echo_on_assignment = true - irb.context.omit_on_assignment = false out, err = capture_io do irb.eval_input end @@ -258,7 +255,6 @@ module TestIRB input.reset irb.context.echo = false irb.context.echo_on_assignment = false - irb.context.omit_on_assignment = true out, err = capture_io do irb.eval_input end @@ -267,8 +263,7 @@ module TestIRB input.reset irb.context.echo = false - irb.context.echo_on_assignment = true - irb.context.omit_on_assignment = true + irb.context.echo_on_assignment = :truncate out, err = capture_io do irb.eval_input end @@ -278,7 +273,6 @@ module TestIRB input.reset irb.context.echo = false irb.context.echo_on_assignment = true - irb.context.omit_on_assignment = false out, err = capture_io do irb.eval_input end @@ -298,7 +292,6 @@ module TestIRB irb.context.echo = true irb.context.echo_on_assignment = false - irb.context.omit_on_assignment = true out, err = capture_io do irb.eval_input end @@ -308,8 +301,7 @@ module TestIRB input.reset irb.context.echo = true - irb.context.echo_on_assignment = true - irb.context.omit_on_assignment = true + irb.context.echo_on_assignment = :truncate out, err = capture_io do irb.eval_input end @@ -320,7 +312,6 @@ module TestIRB input.reset irb.context.echo = true irb.context.echo_on_assignment = true - irb.context.omit_on_assignment = false out, err = capture_io do irb.eval_input end @@ -331,7 +322,6 @@ module TestIRB input.reset irb.context.echo = false irb.context.echo_on_assignment = false - irb.context.omit_on_assignment = true out, err = capture_io do irb.eval_input end @@ -341,8 +331,7 @@ module TestIRB input.reset irb.context.echo = false - irb.context.echo_on_assignment = true - irb.context.omit_on_assignment = true + irb.context.echo_on_assignment = :truncate out, err = capture_io do irb.eval_input end @@ -353,7 +342,6 @@ module TestIRB input.reset irb.context.echo = false irb.context.echo_on_assignment = true - irb.context.omit_on_assignment = false out, err = capture_io do irb.eval_input end @@ -370,26 +358,22 @@ module TestIRB irb = IRB::Irb.new(IRB::WorkSpace.new(Object.new), input) assert(irb.context.echo?, "echo? should be true by default") - assert(irb.context.echo_on_assignment?, "echo_on_assignment? should be true by default") - assert(irb.context.omit_on_assignment?, "omit_on_assignment? should be true by default") + assert_equal(:truncate, irb.context.echo_on_assignment?, "echo_on_assignment? should be :truncate by default") # Explicitly set :ECHO to false IRB.conf[:ECHO] = false irb = IRB::Irb.new(IRB::WorkSpace.new(Object.new), input) refute(irb.context.echo?, "echo? should be false when IRB.conf[:ECHO] is set to false") - assert(irb.context.echo_on_assignment?, "echo_on_assignment? should be true by default") - assert(irb.context.omit_on_assignment?, "omit_on_assignment? should be true by default") + assert_equal(:truncate, irb.context.echo_on_assignment?, "echo_on_assignment? should be :truncate by default") # Explicitly set :ECHO_ON_ASSIGNMENT to true IRB.conf[:ECHO] = nil IRB.conf[:ECHO_ON_ASSIGNMENT] = false - IRB.conf[:OMIT_ON_ASSIGNMENT] = false irb = IRB::Irb.new(IRB::WorkSpace.new(Object.new), input) assert(irb.context.echo?, "echo? should be true by default") refute(irb.context.echo_on_assignment?, "echo_on_assignment? should be false when IRB.conf[:ECHO_ON_ASSIGNMENT] is set to false") - refute(irb.context.omit_on_assignment?, "omit_on_assignment? should be false when IRB.conf[:OMIT_ON_ASSIGNMENT] is set to false") end def test_multiline_output_on_default_inspector -- cgit v1.2.3