class Terjira::VersionChecker
Constants
- VERSION_CHECK_DURATION
Public Class Methods
check_version()
click to toggle source
# File lib/terjira/version.rb, line 10 def check_version version_alert_cache.fetch :alert do if new_version_exists? puts "* New version of terjira was released! Run `gem update terjira` if you want to update" end 'checked!' end end
new_version_exists?()
click to toggle source
# File lib/terjira/version.rb, line 19 def new_version_exists? current = Terjira::VERSION.split(".").map(&:to_i) remote = parse_remote_version (current[0] < remote[0]) || ((current[0] == remote[0]) && (current[1] < remote[1])) || ((current[0] == remote[0]) && (current[1] == remote[1]) && (current[2] < remote[2])) rescue => e puts "Can not check new version of terjira, #{e.message}" false end
Private Class Methods
parse_remote_version()
click to toggle source
# File lib/terjira/version.rb, line 33 def parse_remote_version remote_version = search_remote_version (remote_version.scan(/(?<=terjira\s\()\d+\.\d+\.\d+/).first || '0.0.0').split(".").map(&:to_i) end
search_remote_version()
click to toggle source
# File lib/terjira/version.rb, line 38 def search_remote_version @remote_version_str ||= `gem search terjira` end
version_alert_cache()
click to toggle source
# File lib/terjira/version.rb, line 42 def version_alert_cache @version_alert_cache ||= Terjira::FileCache.new("version", VERSION_CHECK_DURATION) end