class VagrantPlugins::Openstack::VersionChecker
Attributes
check_enabled[RW]
boolean attribute to disbale version checker
status[RW]
:latest, :outdated or :unstable
A version is considered unstable if it does not respect the pattern or if it is greater than the latest from rubygem
Public Class Methods
new()
click to toggle source
# File lib/vagrant-openstack-provider/version_checker.rb, line 24 def initialize @status = nil @check_enabled = true check = ENV['VAGRANT_OPENSTACK_VERSION_CKECK'] @check_enabled = false if check && check.upcase == 'DISABLED' end
Public Instance Methods
check()
click to toggle source
Check the latest version from rubygem and set the status
# File lib/vagrant-openstack-provider/version_checker.rb, line 35 def check return :latest unless @check_enabled return @status unless @status.nil? begin latest = Gem.latest_spec_for('vagrant-openstack-provider').version.version rescue # If for any reason the version of the latest pulished # version can't be found we don't fail in any way return :latest end current = VagrantPlugins::Openstack::VERSION unless current =~ VERSION_PATTERN @status = :unstable print_message I18n.t('vagrant_openstack.version_unstable') return end if latest.eql? current @status = :latest return end v_latest = latest.split('.').map(&:to_i) v_current = current.split('.').map(&:to_i) i_latest = v_latest[2] + v_latest[1] * 1000 + v_latest[0] * 1_000_000 i_current = v_current[2] + v_current[1] * 1000 + v_current[0] * 1_000_000 if i_current > i_latest @status = :unstable print_message I18n.t('vagrant_openstack.version_unstable') return end @status = :outdated print_message I18n.t('vagrant_openstack.version_outdated', latest: latest, current: current) end
Private Instance Methods
print_message(message)
click to toggle source
# File lib/vagrant-openstack-provider/version_checker.rb, line 78 def print_message(message) $stderr.puts message.yellow $stderr.puts '' end