class ChefDK::CookbookProfiler::Identifiers
Attributes
cookbook_version[R]
Public Class Methods
new(cookbook_version)
click to toggle source
# File lib/chef-dk/cookbook_profiler/identifiers.rb, line 33 def initialize(cookbook_version) @cookbook_version = cookbook_version end
Public Instance Methods
content_identifier()
click to toggle source
# File lib/chef-dk/cookbook_profiler/identifiers.rb, line 41 def content_identifier Digest::SHA1.new.hexdigest(fingerprint_text) end
cookbook_files()
click to toggle source
# File lib/chef-dk/cookbook_profiler/identifiers.rb, line 66 def cookbook_files @files ||= cookbook_version.manifest_records_by_path end
dotted_decimal_identifier()
click to toggle source
# File lib/chef-dk/cookbook_profiler/identifiers.rb, line 45 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
files_with_checksums()
click to toggle source
# File lib/chef-dk/cookbook_profiler/identifiers.rb, line 60 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
fingerprint_text()
click to toggle source
# File lib/chef-dk/cookbook_profiler/identifiers.rb, line 54 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
semver_version()
click to toggle source
# File lib/chef-dk/cookbook_profiler/identifiers.rb, line 37 def semver_version cookbook_version.version end