Sha256: 3b0362d940d178bff40d28813808c38e6201e93e07d61bb4586ee8f0355b8e9c

Contents?: true

Size: 1.45 KB

Versions: 18

Compression:

Stored size: 1.45 KB

Contents

require 'open-uri'

module Deliver
  # Verifies, the user runs the latest version of this gem
  class UpdateChecker
    # This method will check if the latest version is installed and show a warning if that's not the case
    def self.verify_latest_version
      if self.update_available?
        v = fetch_latest
        puts '#######################################################################'.green
        puts "# Deliver #{v} is available.".green
        puts "# It is recommended to use the latest version.".green
        puts "# Update using '(sudo) gem update deliver'.".green
        puts "# To see what's new, open https://github.com/KrauseFx/deliver/releases.".green
        puts '#######################################################################'.green
        return true
      end
      false
    end

    # Is a new official release available (this does not include pre-releases)
    def self.update_available?
      begin
        latest = fetch_latest
        if latest and Gem::Version.new(latest) > Gem::Version.new(current_version)
          return true
        end
      rescue Exception => ex
        Helper.log.error("Could not check if 'deliver' is up to date.")
      end
      return false
    end

    # The currently used version of this gem
    def self.current_version
      Deliver::VERSION
    end

    private
      def self.fetch_latest
        JSON.parse(open("http://rubygems.org/api/v1/gems/deliver.json").read)["version"]
      end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
deliver-0.4.2 lib/deliver/update_checker.rb
deliver-0.4.1 lib/deliver/update_checker.rb
deliver-0.4.0 lib/deliver/update_checker.rb
deliver-0.4.0.beta1 lib/deliver/update_checker.rb
deliver-0.3.7 lib/deliver/update_checker.rb
deliver-0.3.7.beta2 lib/deliver/update_checker.rb
deliver-0.3.7.beta1 lib/deliver/update_checker.rb
deliver-0.3.6 lib/deliver/update_checker.rb
deliver-0.3.5 lib/deliver/update_checker.rb
deliver-0.3.4 lib/deliver/update_checker.rb
deliver-0.3.3 lib/deliver/update_checker.rb
deliver-0.3.2 lib/deliver/update_checker.rb
deliver-0.3.1 lib/deliver/update_checker.rb
deliver-0.3.0 lib/deliver/update_checker.rb
deliver-0.3.0.beta1 lib/deliver/update_checker.rb
deliver-0.2.2 lib/deliver/update_checker.rb
deliver-0.2.2.beta2 lib/deliver/update_checker.rb
deliver-0.2.1 lib/deliver/update_checker.rb