Sha256: 17d5b012fa7fea7cbcaed89d7bb85e95a309167a6ab89e713aba52cd23e8f82a
Contents?: true
Size: 1.23 KB
Versions: 2
Compression:
Stored size: 1.23 KB
Contents
require 'chef_fs/file_system/base_fs_object' require 'digest/md5' module ChefFS module FileSystem class CookbookFile < BaseFSObject def initialize(name, parent, file) super(name, parent) @file = file end attr_reader :file def checksum file[:checksum] end def read old_sign_on_redirect = rest.sign_on_redirect rest.sign_on_redirect = false begin rest.get_rest(file[:url]) ensure rest.sign_on_redirect = old_sign_on_redirect end end def rest parent.rest end def compare_to(other) other_value = nil if other.respond_to?(:checksum) other_checksum = other.checksum else begin other_value = other.read rescue ChefFS::FileSystem::NotFoundError return [ false, nil, :none ] end other_checksum = calc_checksum(other_value) end [ checksum == other_checksum, nil, other_value ] end private def calc_checksum(value) begin Digest::MD5.hexdigest(value) rescue ChefFS::FileSystem::NotFoundError nil end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
knife-essentials-0.7.6 | lib/chef_fs/file_system/cookbook_file.rb |
knife-essentials-0.7.5 | lib/chef_fs/file_system/cookbook_file.rb |