Class: VagrantPlugins::Openstack::VersionChecker
- Inherits:
-
Object
- Object
- VagrantPlugins::Openstack::VersionChecker
- Includes:
- Singleton
- Defined in:
- lib/vagrant-openstack-provider/version_checker.rb
Instance Attribute Summary collapse
-
#status ⇒ Object
:latest, :outdated or :unstable.
Instance Method Summary collapse
-
#check ⇒ Object
Check the latest version from rubygem and set the status.
-
#initialize ⇒ VersionChecker
constructor
A new instance of VersionChecker.
Constructor Details
#initialize ⇒ VersionChecker
Returns a new instance of VersionChecker.
19 20 21 |
# File 'lib/vagrant-openstack-provider/version_checker.rb', line 19 def initialize @status = nil end |
Instance Attribute Details
#status ⇒ Object
: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
17 18 19 |
# File 'lib/vagrant-openstack-provider/version_checker.rb', line 17 def status @status end |
Instance Method Details
#check ⇒ Object
Check the latest version from rubygem and set the status
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/vagrant-openstack-provider/version_checker.rb', line 26 def check return @status unless @status.nil? latest = Gem.latest_spec_for('vagrant-openstack-provider').version.version current = VagrantPlugins::Openstack::VERSION unless current =~ VERSION_PATTERN @status = :unstable print 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 I18n.t('vagrant_openstack.version_unstable') return end @status = :outdated print I18n.t('vagrant_openstack.version_outdated', latest: latest, current: current) end |