Module: Mortar::Updater

Defined in:
lib/mortar/updater.rb

Constant Summary collapse

CONNECT_TIMEOUT =
5
READ_TIMEOUT =
5

Class Method Summary collapse

Class Method Details

.compare_versions(first_version, second_version) ⇒ Object



43
44
45
# File 'lib/mortar/updater.rb', line 43

def self.compare_versions(first_version, second_version)
  first_version.split('.').map {|part| Integer(part) rescue part} <=> second_version.split('.').map {|part| Integer(part) rescue part}
end

.get_newest_versionObject



28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/mortar/updater.rb', line 28

def self.get_newest_version
  begin
    require "excon"
    gem_data = Mortar::Helpers.json_decode(
      Excon.get('https://rubygems.org/api/v1/gems/mortar.json', 
        {:connect_timeout => CONNECT_TIMEOUT, 
         :read_timeout => READ_TIMEOUT, 
         :ssl_version => :TLSv1}).body)
    gem_data.default = "0.0.0"
    gem_data['version']
  rescue Exception => e
    '0.0.0'
  end
end

.update_checkObject



47
48
49
50
51
52
53
54
# File 'lib/mortar/updater.rb', line 47

def self.update_check
  local_version = Mortar::VERSION
  newest_version = self.get_newest_version

  if compare_versions(newest_version, local_version) > 0
    Mortar::Helpers.warning("There is a new version of the Mortar development framework available.  Please run 'gem install mortar' to install the latest version.\n\n")
  end
end