add `Vagrant.version?` helper method
to check Vagrant for a version match without raising an error.
This commit is contained in:
parent
3ec55d2a51
commit
28771674d6
|
@ -195,6 +195,17 @@ module Vagrant
|
||||||
puts "be removed in the next version of Vagrant."
|
puts "be removed in the next version of Vagrant."
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# This checks if Vagrant is installed in a specific version.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
#
|
||||||
|
# Vagrant.version?(">= 2.1.0")
|
||||||
|
#
|
||||||
|
def self.version?(*requirements)
|
||||||
|
req = Gem::Requirement.new(*requirements)
|
||||||
|
req.satisfied_by?(Gem::Version.new(VERSION))
|
||||||
|
end
|
||||||
|
|
||||||
# This allows a Vagrantfile to specify the version of Vagrant that is
|
# This allows a Vagrantfile to specify the version of Vagrant that is
|
||||||
# required. You can specify a list of requirements which will all be checked
|
# required. You can specify a list of requirements which will all be checked
|
||||||
# against the running Vagrant version.
|
# against the running Vagrant version.
|
||||||
|
@ -211,8 +222,7 @@ module Vagrant
|
||||||
logger = Log4r::Logger.new("vagrant::root")
|
logger = Log4r::Logger.new("vagrant::root")
|
||||||
logger.info("Version requirements from Vagrantfile: #{requirements.inspect}")
|
logger.info("Version requirements from Vagrantfile: #{requirements.inspect}")
|
||||||
|
|
||||||
req = Gem::Requirement.new(*requirements)
|
if version?(*requirements)
|
||||||
if req.satisfied_by?(Gem::Version.new(VERSION))
|
|
||||||
logger.info(" - Version requirements satisfied!")
|
logger.info(" - Version requirements satisfied!")
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
|
@ -101,6 +101,16 @@ describe Vagrant do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "version?" do
|
||||||
|
it "should succeed if valid range" do
|
||||||
|
expect(described_class.version?(Vagrant::VERSION)).to be(true)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should not succeed if bad range" do
|
||||||
|
expect(described_class.version?("> #{Vagrant::VERSION}")).to be(false)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe "original_env" do
|
describe "original_env" do
|
||||||
before do
|
before do
|
||||||
ENV["VAGRANT_OLD_ENV_foo"] = "test"
|
ENV["VAGRANT_OLD_ENV_foo"] = "test"
|
||||||
|
|
Loading…
Reference in New Issue