discourse/lib/discourse_updates.rb

49 lines
1.2 KiB
Ruby
Raw Normal View History

module DiscourseUpdates
class << self
def check_version
DiscourseVersionCheck.new(
latest_version: latest_version || Discourse::VERSION::STRING,
critical_updates: critical_update_available?,
installed_version: Discourse::VERSION::STRING,
installed_sha: (Discourse.git_version == 'unknown' ? nil : Discourse.git_version),
missing_versions_count: missing_versions_count || nil
# TODO: more info, like links and release messages
)
end
def latest_version
$redis.get latest_version_key
end
def missing_versions_count
$redis.get(missing_versions_count_key).try(:to_i)
end
def critical_update_available?
($redis.get(critical_updates_available_key) || false) == 'true'
end
['latest_version', 'missing_versions_count', 'critical_update_available'].each do |name|
eval "define_method :#{name}= do |arg|
$redis.set #{name}_key, arg
end"
end
private
def latest_version_key
'discourse_latest_version'
end
def critical_updates_available_key
'critical_updates_available'
end
def missing_versions_count_key
'missing_versions_count'
end
end
end