class ChefCLI::CookbookProfiler::Identifiers
def content_identifier
def content_identifier Digest::SHA1.new.hexdigest(fingerprint_text) end
def cookbook_files
def cookbook_files @files ||= cookbook_version.manifest_records_by_path end
def dotted_decimal_identifier
def dotted_decimal_identifier hex_id = content_identifier major = hex_id[0...14] minor = hex_id[14...28] patch = hex_id[28..40] decimal_integers = [major, minor, patch].map { |hex| hex.to_i(16) } decimal_integers.join(".") end
def files_with_checksums
def files_with_checksums cookbook_files.inject([]) do |files_with_checksums, (_name, file_info)| files_with_checksums << [file_info["path"], file_info["checksum"]] end end
def fingerprint_text
def fingerprint_text files_with_checksums.sort_by { |a| a[0] }.inject("") do |fingerprint, file_spec| fingerprint << "#{file_spec[0]}:#{file_spec[1]}\n" end end
def initialize(cookbook_version)
def initialize(cookbook_version) @cookbook_version = cookbook_version end
def semver_version
def semver_version cookbook_version.version end