summaryrefslogtreecommitdiff
path: root/lib/irb/init.rb
diff options
context:
space:
mode:
authoraycabta <[email protected]>2021-02-06 21:07:11 +0900
committergit <[email protected]>2021-02-06 21:09:31 +0900
commit7b354cf67ba95305b600cc8b3ba684923cdc5a98 (patch)
treeb6215c4c41cf913f4ceb8353d205414486939515 /lib/irb/init.rb
parent5704b5fe5e42bd5b1f42a27368cd5d52dd5a9060 (diff)
[ruby/irb] Enable to reassign a new block with "measure" command
https://github.com/ruby/irb/commit/b444573aa2
Diffstat (limited to 'lib/irb/init.rb')
-rw-r--r--lib/irb/init.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/irb/init.rb b/lib/irb/init.rb
index cd57012c61..78ef2fa3c1 100644
--- a/lib/irb/init.rb
+++ b/lib/irb/init.rb
@@ -157,6 +157,14 @@ module IRB # :nodoc:
added = [:CUSTOM, IRB.conf[:MEASURE_PROC][:CUSTOM], arg]
elsif block_given?
added = [:BLOCK, block, arg]
+ found = IRB.conf[:MEASURE_CALLBACKS].find{ |m| m[0] == added[0] && m[2] == added[2] }
+ if found
+ found[1] = block
+ return added
+ else
+ IRB.conf[:MEASURE_CALLBACKS] << added
+ return added
+ end
else
added = [:TIME, IRB.conf[:MEASURE_PROC][:TIME], arg]
end