From 2a4eba8435c05e421646fffbbe03159ae6e0b06a Mon Sep 17 00:00:00 2001 From: Chris Roberts Date: Fri, 1 Oct 2021 14:13:13 -0700 Subject: [PATCH] Be more prescriptive on `super` usage to make Ruby 2.6 happy --- plugins/commands/serve/util/has_broker.rb | 7 +++++-- plugins/commands/serve/util/has_logger.rb | 7 +++++-- plugins/commands/serve/util/has_mapper.rb | 7 +++++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/plugins/commands/serve/util/has_broker.rb b/plugins/commands/serve/util/has_broker.rb index 402f17c53..7432716fe 100644 --- a/plugins/commands/serve/util/has_broker.rb +++ b/plugins/commands/serve/util/has_broker.rb @@ -13,10 +13,13 @@ module VagrantPlugins raise ArgumentError, "Expected `Broker' to be provided" if @broker.nil? - if self.method(:initialize).super_method.parameters.empty? + sup = self.method(:initialize).super_method + if sup.parameters.empty? super() - else + elsif !opts.empty? && sup.parameters.detect{ |type, _| type == :keyreq || type == :keyrest } super + else + super(*args, &block) end end end diff --git a/plugins/commands/serve/util/has_logger.rb b/plugins/commands/serve/util/has_logger.rb index 1b096e3b4..6bff5dca9 100644 --- a/plugins/commands/serve/util/has_logger.rb +++ b/plugins/commands/serve/util/has_logger.rb @@ -11,10 +11,13 @@ module VagrantPlugins def initialize(*args, **opts, &block) @logger = Log4r::Logger.new(self.class.name.downcase) - if self.method(:initialize).super_method.parameters.empty? + sup = self.method(:initialize).super_method + if sup.parameters.empty? super() - else + elsif !opts.empty? && sup.parameters.detect{ |type, _| type == :keyreq || type == :keyrest } super + else + super(*args, &block) end end end diff --git a/plugins/commands/serve/util/has_mapper.rb b/plugins/commands/serve/util/has_mapper.rb index fcd27ba3f..d54e8c2a6 100644 --- a/plugins/commands/serve/util/has_mapper.rb +++ b/plugins/commands/serve/util/has_mapper.rb @@ -16,10 +16,13 @@ module VagrantPlugins @mapper.add_argument(broker) end - if self.method(:initialize).super_method.parameters.empty? + sup = self.method(:initialize).super_method + if sup.parameters.empty? super() - else + elsif !opts.empty? && sup.parameters.detect{ |type, _| type == :keyreq || type == :keyrest } super + else + super(*args, &block) end end end