Sha256: ceef6343b47c5749c2c6c4502c669a6efd875db54f21d0c7d7acdb46154be9a2

Contents?: true

Size: 1.14 KB

Versions: 6

Compression:

Stored size: 1.14 KB

Contents

# 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

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
inspec-2.1.81 lib/bundles/inspec-compliance/support.rb
inspec-2.1.21 lib/bundles/inspec-compliance/support.rb
inspec-2.1.10 lib/bundles/inspec-compliance/support.rb
inspec-2.0.32 lib/bundles/inspec-compliance/support.rb
inspec-2.0.17 lib/bundles/inspec-compliance/support.rb
inspec-1.51.15 lib/bundles/inspec-compliance/support.rb