diff options
author | Lars Kanis <[email protected]> | 2020-01-17 19:30:28 +0100 |
---|---|---|
committer | aycabta <[email protected]> | 2020-01-20 19:13:19 +0900 |
commit | f451bb5406878e1ac9ce9d37952f171837d0cb09 (patch) | |
tree | c6ee274410b2f930cc85bd119daf0e699e8b987d /lib/irb/completion.rb | |
parent | 3b407abe9b8da640dc07617d3dacac0057ca597f (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
Diffstat (limited to 'lib/irb/completion.rb')
-rw-r--r-- | lib/irb/completion.rb | 2 |
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} |