summaryrefslogtreecommitdiff
path: root/lib/irb.rb
diff options
context:
space:
mode:
authoraycabta <aycabta@gmail.com>2020-02-25 20:32:07 +0900
committeraycabta <aycabta@gmail.com>2020-03-26 17:41:21 +0900
commitffbb162f1a052054ce2864d2971e83da10f8aa78 (patch)
tree732be1527ff92fd268d6449fbbf69e00f9d10ae1 /lib/irb.rb
parentb08c1bea3632062d0689affac4e0e78523349af0 (diff)
[ruby/irb] Detect multiple lines output simplify
The old implementation performance test code: require 'objspace' puts "%.5g MB" % (ObjectSpace.memsize_of_all * 0.001 * 0.001) /\A.*\Z/ !~ ('abc' * 20_000_000) puts "%.5g MB" % (ObjectSpace.memsize_of_all * 0.001 * 0.001) and run `time test.rb`: 2.5868 MB 62.226 MB real 0m1.307s user 0m0.452s sys 0m0.797s The new implementation performance test code: require 'objspace' puts "%.5g MB" % (ObjectSpace.memsize_of_all * 0.001 * 0.001) ('abc' * 20_000_000).include?("\n") puts "%.5g MB" % (ObjectSpace.memsize_of_all * 0.001 * 0.001) and run `time test.rb`: 2.5861 MB 62.226 MB real 0m0.132s user 0m0.088s sys 0m0.042s https://github.com/ruby/irb/commit/40d6610baf
Diffstat (limited to 'lib/irb.rb')
-rw-r--r--lib/irb.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/irb.rb b/lib/irb.rb
index de5af30..e73174e 100644
--- a/lib/irb.rb
+++ b/lib/irb.rb
@@ -738,7 +738,7 @@ module IRB
def output_value # :nodoc:
str = @context.inspect_last_value
- multiline_p = /\A.*\Z/ !~ str
+ multiline_p = str.include?("\n")
if multiline_p && @context.newline_before_multiline_output?
printf @context.return_format, "\n#{str}"
else