discourse/lib/version.rb
David Taylor a48731e359
FEATURE: Support additional metadata in theme about.json (#6944)
New `about.json` fields (all optional):
 - `authors`: An arbitrary string describing the theme authors
 - `theme_version`: An arbitrary string describing the theme version
 - `minimum_discourse_version`: Theme will be auto-disabled for lower versions. Must be a valid version descriptor.
 - `maximum_discourse_version`: Theme will be auto-disabled for lower versions. Must be a valid version descriptor.

A localized description for a theme can be provided in the language files under the `theme_metadata.description` key

The admin UI has been re-arranged to display this new information, and give more prominence to the remote theme options.
2019-01-25 14:19:01 +00:00

36 lines
896 B
Ruby

module Discourse
VERSION_REGEXP = /\A\d+\.\d+\.\d+(\.beta\d+)?\z/ unless defined? ::Discourse::VERSION_REGEXP
# work around reloader
unless defined? ::Discourse::VERSION
module VERSION #:nodoc:
MAJOR = 2
MINOR = 2
TINY = 0
PRE = 'beta9'
STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.')
end
end
def self.has_needed_version?(current, needed)
current_split = current.split('.')
needed_split = needed.split('.')
(0..[current_split.size, needed_split.size].max).each do |idx|
current_str = current_split[idx] || ''
c0 = (needed_split[idx] || '').sub('beta', '').to_i
c1 = (current_str || '').sub('beta', '').to_i
# beta is less than stable
return false if current_str.include?('beta') && (c0 == 0) && (c1 > 0)
return true if c1 > c0
return false if c0 > c1
end
true
end
end