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