lib/vagrant/box_metadata.rb in vagrant-unbundled-2.2.6.2 vs lib/vagrant/box_metadata.rb in vagrant-unbundled-2.2.7.0
- old
+ new
@@ -66,14 +66,28 @@
nil
end
# Returns all the versions supported by this metadata. These
# versions are sorted so the last element of the list is the
- # latest version.
+ # latest version. Optionally filter versions by a matching
+ # provider.
#
# @return[Array<String>]
- def versions
- @version_map.keys.sort.map(&:to_s)
+ def versions(**opts)
+ provider = nil
+ provider = opts[:provider].to_sym if opts[:provider]
+
+ if provider
+ @version_map.select do |version, raw|
+ if raw["providers"]
+ raw["providers"].detect do |p|
+ p["name"].to_sym == provider
+ end
+ end
+ end.keys.sort.map(&:to_s)
+ else
+ @version_map.keys.sort.map(&:to_s)
+ end
end
# Represents a single version within the metadata.
class Version
# The version that this Version object represents.