# encoding: utf-8 # author: Christoph Hartmann # author: Dominik Richter module Compliance # is a helper that provides information which version of compliance supports # which feature class Support # for a feature, returns either: # - a version v0: v supports v0 iff v0 <= v # - an array [v0, v1] of two versions: v supports [v0, v1] iff v0 <= v < v1 def self.version_with_support(feature) case feature.to_sym when :oidc # open id connect authentication Gem::Version.new('0.16.19') else Gem::Version.new('0.0.0') end end # determines if the given version support a certain feature def self.supported?(feature, version) sup = version_with_support(feature) if sup.is_a?(Array) Gem::Version.new(version) >= sup[0] && Gem::Version.new(version) < sup[1] else Gem::Version.new(version) >= sup end end # we do not know the version, therefore we do not know if its possible to use the feature # return if self['version'].nil? || self['version']['version'].nil? end end