Sha256: 27dd71ba869887352db8c1e9e173086cc7fb12c7cd1bf6462e36753198d83309
Contents?: true
Size: 1.61 KB
Versions: 2
Compression:
Stored size: 1.61 KB
Contents
require 'logger' require 'yaml' require 'pathname' module KPM class Sha1Checker def self.from_file(sha1_file, logger=nil) Sha1Checker.new(sha1_file, logger) end def initialize(sha1_file, logger=nil) @sha1_file = sha1_file init! if logger.nil? @logger = Logger.new(STDOUT) @logger.level = Logger::INFO else @logger = logger end end def sha1(coordinates) @sha1_config['sha1'][coordinates] end def all_sha1() @sha1_config['sha1'] end def add_or_modify_entry!(coordinates, remote_sha1) @sha1_config['sha1'][coordinates] = remote_sha1 save! end def remove_entry!(coordinates) @sha1_config['sha1'].delete(coordinates) save! end private def save! Dir.mktmpdir do |tmp_destination_dir| tmp_file = File.join(tmp_destination_dir, File.basename(@sha1_file)) File.open(tmp_file, 'w') do |file| file.write(@sha1_config.to_yaml) end FileUtils.copy(tmp_file, @sha1_file) end reload! end def init! if !File.exists?(@sha1_file) create_sha1_directory_if_missing init_config = {} init_config['sha1'] = {} File.open(@sha1_file, 'w') do |file| file.write(init_config.to_yaml) end end reload! end def create_sha1_directory_if_missing sha1_dir = Pathname(@sha1_file).dirname if ! File.directory?(sha1_dir) FileUtils.mkdir_p(sha1_dir) end end def reload! @sha1_config = YAML::load_file(@sha1_file) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
kpm-0.7.1 | lib/kpm/sha1_checker.rb |
kpm-0.7.0 | lib/kpm/sha1_checker.rb |