[前][次][番号順一覧][スレッド一覧]

ruby-changes:63015

From: aycabta <ko1@a...>
Date: Sat, 19 Sep 2020 05:14:57 +0900 (JST)
Subject: [ruby-changes:63015] 555ea83344 (master): [ruby/irb] Drop OMIT_ON_ASSIGNMENT and add :truncate option for ECHO_ON_ASSIGNMENT

https://git.ruby-lang.org/ruby.git/commit/?id=555ea83344

From 555ea8334451c5ccd881e68b8b7ddc15745e66e3 Mon Sep 17 00:00:00 2001
From: aycabta <aycabta@g...>
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

diff --git a/lib/irb.rb b/lib/irb.rb
index d8e1209..bdf14f4 100644
--- a/lib/irb.rb
+++ b/lib/irb.rb
@@ -542,7 +542,7 @@ module IRB https://github.com/ruby/ruby/blob/trunk/lib/irb.rb#L542
             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 4f00172..0d358de 100644
--- a/lib/irb/context.rb
+++ b/lib/irb/context.rb
@@ -131,12 +131,7 @@ module IRB https://github.com/ruby/ruby/blob/trunk/lib/irb/context.rb#L131
 
       @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 https://github.com/ruby/ruby/blob/trunk/lib/irb/context.rb#L251
     attr_accessor :echo
     # Whether to echo for assignment expressions
     #
-    # Uses <code>IRB.conf[:ECHO_ON_ASSIGNMENT]</code> 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 <code>IRB.conf[:OMIT_ON_ASSIGNMENT]</code> 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 <code>IRB.conf[:NEWLINE_BEFORE_MULTILINE_OUTPUT]</code> if available,
@@ -325,7 +317,6 @@ module IRB https://github.com/ruby/ruby/blob/trunk/lib/irb/context.rb#L317
     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 4438360..e60b526 100644
--- a/lib/irb/init.rb
+++ b/lib/irb/init.rb
@@ -52,7 +52,6 @@ module IRB # :nodoc: https://github.com/ruby/ruby/blob/trunk/lib/irb/init.rb#L52
     @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: https://github.com/ruby/ruby/blob/trunk/lib/irb/init.rb#L177
         @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 fa628bb..a57557a 100644
--- a/test/irb/test_context.rb
+++ b/test/irb/test_context.rb
@@ -228,7 +228,6 @@ module TestIRB https://github.com/ruby/ruby/blob/trunk/test/irb/test_context.rb#L228
 
       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 https://github.com/ruby/ruby/blob/trunk/test/irb/test_context.rb#L236
 
       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 https://github.com/ruby/ruby/blob/trunk/test/irb/test_context.rb#L246
       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 https://github.com/ruby/ruby/blob/trunk/test/irb/test_context.rb#L255
       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 https://github.com/ruby/ruby/blob/trunk/test/irb/test_context.rb#L263
 
       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 https://github.com/ruby/ruby/blob/trunk/test/irb/test_context.rb#L273
       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 https://github.com/ruby/ruby/blob/trunk/test/irb/test_context.rb#L292
 
       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 https://github.com/ruby/ruby/blob/trunk/test/irb/test_context.rb#L301
 
       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 https://github.com/ruby/ruby/blob/trunk/test/irb/test_context.rb#L312
       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 https://github.com/ruby/ruby/blob/trunk/test/irb/test_context.rb#L322
       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 https://github.com/ruby/ruby/blob/trunk/test/irb/test_context.rb#L331
 
       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 https://github.com/ruby/ruby/blob/trunk/test/irb/test_context.rb#L342
       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 https://github.com/ruby/ruby/blob/trunk/test/irb/test_context.rb#L358
       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 fal (... truncated)

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]