summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Kanis <lars@greiz-reinsdorf.de>2020-01-17 19:30:28 +0100
committeraycabta <aycabta@gmail.com>2020-01-20 19:13:19 +0900
commitf451bb5406878e1ac9ce9d37952f171837d0cb09 (patch)
treec6ee274410b2f930cc85bd119daf0e699e8b987d
parent3b407abe9b8da640dc07617d3dacac0057ca597f (diff)
[ruby/irb] Fix compatibility with rails before 5.2
Rails before 5.2 added Array#append as an alias to Array#<< , so that it expects only one argument. However ruby-2.5 added Array#append as an alias to Array#push which takes any number of arguments. If irb completion is used in `rails c` (for example "IO.<tab>") it fails with: irb/completion.rb:206:in `<<': wrong number of arguments (given 3, expected 1) (ArgumentError) Using Array#push instead of Array#append fixes compatibility. https://github.com/ruby/irb/commit/5b7bbf9c34
-rw-r--r--lib/irb/completion.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/irb/completion.rb b/lib/irb/completion.rb
index 3536e8ec87..474d13cdbb 100644
--- a/lib/irb/completion.rb
+++ b/lib/irb/completion.rb
@@ -203,7 +203,7 @@ module IRB
sep = $2
message = Regexp.quote($3)
- gv = eval("global_variables", bind).collect{|m| m.to_s}.append("true", "false", "nil")
+ gv = eval("global_variables", bind).collect{|m| m.to_s}.push("true", "false", "nil")
lv = eval("local_variables", bind).collect{|m| m.to_s}
iv = eval("instance_variables", bind).collect{|m| m.to_s}
cv = eval("self.class.constants", bind).collect{|m| m.to_s}