def build(builder_params={})
expansion_options = builder_params[:expand] || {}
allowed_resources = expansion_options[:only] || default_dependent_resources
allowed_resources -= expansion_options[:except] || []
allowed_resources += expansion_options[:including] || []
allowed_resources.uniq!
primary_resource = expansion_options[:primary]
to_remove = default_dependent_resources - allowed_resources
to_add = allowed_resources - default_dependent_resources
builders.reject! do |b|
b.class <= DependentSearchablesOptionBuilder && to_remove.include?(b.resource.name)
end
to_add.each do |resource_name|
builders << DependentSearchablesOptionBuilder.new(HammerCLIForeman.foreman_resource(resource_name), @searchables)
end
if !primary_resource.nil?
builders.reject! do |b|
b.class <= SearchablesOptionBuilder
end
builders << SearchablesOptionBuilder.new(HammerCLIForeman.foreman_resource(primary_resource), @searchables) if primary_resource != false
end
super
end