32 lines
825 B
Ruby

# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: BUSL-1.1
module VagrantPlugins
module CommandServe
module Util
# Requires a broker to be set when initializing an
# instance and adds an accessor to the broker
module HasBroker
def broker
@broker
end
def initialize(*args, **opts, &block)
@broker = opts.delete(:broker)
raise ArgumentError,
"Expected `Broker' to be provided" if @broker.nil?
sup = self.method(:initialize).super_method
if sup.parameters.empty?
super()
elsif !opts.empty? && sup.parameters.detect{ |type, _| type == :keyreq || type == :keyrest }
super
else
super(*args, &block)
end
end
end
end
end
end