Class: FastlaneCore::UpdateChecker

Inherits:
Object
  • Object
show all
Defined in:
lib/fastlane_core/update_checker.rb

Overview

Verifies, the user runs the latest version of this gem

Constant Summary collapse

UPDATE_URL =

This web service is fully open source: github.com/fastlane/refresher

"https://fastlane-refresher.herokuapp.com/"

Class Method Summary collapse

Class Method Details

.server_resultsObject



36
37
38
# File 'lib/fastlane_core/update_checker.rb', line 36

def self.server_results
  @@results ||= {}
end

.show_update_message(gem_name, available, current_version) ⇒ Object



26
27
28
29
30
31
32
33
34
# File 'lib/fastlane_core/update_checker.rb', line 26

def self.show_update_message(gem_name, available, current_version)
  v = fetch_latest(gem_name)
  puts '#######################################################################'.green
  puts "# #{gem_name} #{available} is available. You are on #{current_version}.".green
  puts "# It is recommended to use the latest version.".green
  puts "# Update using 'sudo gem update #{gem_name.downcase}'.".green
  puts "# To see what's new, open https://github.com/KrauseFx/#{gem_name}/releases.".green
  puts '#######################################################################'.green
end

.show_update_status(gem_name, current_version) ⇒ Object



19
20
21
22
23
24
# File 'lib/fastlane_core/update_checker.rb', line 19

def self.show_update_status(gem_name, current_version)
  latest = server_results[gem_name]
  if latest and Gem::Version.new(latest) > Gem::Version.new(current_version)
    show_update_message(gem_name, latest, current_version)
  end
end

.start_looking_for_update(gem_name) ⇒ Object



10
11
12
13
14
15
16
17
# File 'lib/fastlane_core/update_checker.rb', line 10

def self.start_looking_for_update(gem_name)
  Thread.new do
    begin
      server_results[gem_name] = fetch_latest(gem_name)
    rescue
    end
  end
end

.update_available?(gem_name, current_version) ⇒ Boolean

Is a new official release available (this does not include pre-releases)

Returns:

  • (Boolean)


59
60
61
62
63
64
65
66
67
68
69
# File 'lib/fastlane_core/update_checker.rb', line 59

def self.update_available?(gem_name, current_version)
  begin
    latest = fetch_latest(gem_name)
    if latest and Gem::Version.new(latest) > Gem::Version.new(current_version)
      return true
    end
  rescue => ex
    Helper.log.error("Could not check if '#{gem_name}' is up to date.")
  end
  return false
end

.verify_latest_version(gem_name, current_version) ⇒ Object

Old code This method will check if the latest version is installed and show a warning if that’s not the case



45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/fastlane_core/update_checker.rb', line 45

def self.verify_latest_version(gem_name, current_version)
  return true unless self.update_available?(gem_name, current_version)

  v = fetch_latest(gem_name)
  puts '#######################################################################'.green
  puts "# #{gem_name} #{v} is available. You are on #{current_version}.".green
  puts "# It is recommended to use the latest version.".green
  puts "# Update using 'sudo gem update #{gem_name.downcase}'.".green
  puts "# To see what's new, open https://github.com/KrauseFx/#{gem_name}/releases.".green
  puts '#######################################################################'.green
  false
end