lib/inspec/profile.rb in inspec-1.48.0 vs lib/inspec/profile.rb in inspec-1.49.2

- old
+ new

@@ -19,11 +19,11 @@ require 'inspec/dependencies/cache' require 'inspec/dependencies/lockfile' require 'inspec/dependencies/dependency_set' module Inspec - class Profile # rubocop:disable Metrics/ClassLength + class Profile extend Forwardable def self.resolve_target(target, cache) Inspec::Log.debug "Resolve #{target} into cache #{cache.path}" Inspec::CachedFetcher.new(target, cache) @@ -41,11 +41,11 @@ keys = content.keys keys.each do |key| next if content[key].nil? # remove prefix rel = Pathname.new(key).relative_path_from(Pathname.new('vendor')).to_s - tar = Pathname.new(opts[:cache].path).join(rel) + tar = Pathname.new(opts[:vendor_cache].path).join(rel) FileUtils.mkdir_p tar.dirname.to_s Inspec::Log.debug "Copy #{tar} to cache directory" File.binwrite(tar.to_s, content[key]) end @@ -54,29 +54,29 @@ def self.for_path(path, opts) file_provider = FileProvider.for_path(path) rp = file_provider.relative_provider # copy embedded dependecies into global cache - copy_deps_into_cache(rp, opts) unless opts[:cache].nil? + copy_deps_into_cache(rp, opts) unless opts[:vendor_cache].nil? reader = Inspec::SourceReader.resolve(rp) if reader.nil? raise("Don't understand inspec profile in #{path}, it " \ "doesn't look like a supported profile structure.") end new(reader, opts) end def self.for_fetcher(fetcher, opts) - opts[:cache] = opts[:cache] || Cache.new + opts[:vendor_cache] = opts[:vendor_cache] || Cache.new path, writable = fetcher.fetch for_path(path, opts.merge(target: fetcher.target, writable: writable)) end def self.for_target(target, opts = {}) - opts[:cache] = opts[:cache] || Cache.new - fetcher = resolve_target(target, opts[:cache]) + opts[:vendor_cache] = opts[:vendor_cache] || Cache.new + fetcher = resolve_target(target, opts[:vendor_cache]) for_fetcher(fetcher, opts) end attr_reader :source_reader, :backend, :runner_context, :check_mode def_delegator :@source_reader, :tests @@ -90,11 +90,11 @@ @logger = options[:logger] || Logger.new(nil) @locked_dependencies = options[:dependencies] @controls = options[:controls] || [] @writable = options[:writable] || false @profile_id = options[:id] - @cache = options[:cache] || Cache.new + @cache = options[:vendor_cache] || Cache.new @attr_values = options[:attributes] @tests_collected = false @libraries_loaded = false @check_mode = options[:check_mode] || false Metadata.finalize(@source_reader.metadata, @profile_id, options) @@ -134,18 +134,24 @@ # backend machine and the current inspec version. # # @returns [TrueClass, FalseClass] # def supported? - supports_os? && supports_runtime? + supports_platform? && supports_runtime? end - def supports_os? - metadata.supports_transport?(@backend) + def supports_platform? + if @supports_platform.nil? + @supports_platform = metadata.supports_platform?(@backend) + end + @supports_platform end def supports_runtime? - metadata.supports_runtime? + if @supports_runtime.nil? + @supports_runtime = metadata.supports_runtime? + end + @supports_runtime end def params @params ||= load_params end