class Inspec::Metadata
def valid # rubocop:disable Metrics/AbcSize
return all warn and errors
def valid # rubocop:disable Metrics/AbcSize errors = [] warnings = [] %w{name version}.each do |field| next unless params[field.to_sym].nil? errors.push("Missing profile #{field} in #{ref}") end if %r{[\/\\]} =~ params[:name] errors.push("The profile name (#{params[:name]}) contains a slash" \ ' which is not permitted. Please remove all slashes from `inspec.yml`.') end # if version is set, ensure it is correct if !params[:version].nil? && !valid_version?(params[:version]) errors.push('Version needs to be in SemVer format') end %w{title summary maintainer copyright license}.each do |field| next unless params[field.to_sym].nil? warnings.push("Missing profile #{field} in #{ref}") end # if version is set, ensure it is in SPDX format if !params[:license].nil? && !Spdx.valid_license?(params[:license]) warnings.push("License '#{params[:license]}' needs to be in SPDX format. See https://spdx.org/licenses/.") end [errors, warnings] end