mirror of
https://github.com/inspec/inspec
synced 2024-11-24 05:33:17 +00:00
36 lines
1.1 KiB
Ruby
36 lines
1.1 KiB
Ruby
# 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
|