Sha256: b17477f4a4bdc138b889d0d7839620d40b3d25f582438f0a9e04428474ba9e71
Contents?: true
Size: 1.19 KB
Versions: 2
Compression:
Stored size: 1.19 KB
Contents
module BackupJenkins module Formatter # Assumes that filenames are ordered already # Requires a structure like: # [ # { :key => "jenkins_berman_20121107_1721.tar.bz2", :content_length => 88762813 }, # { :key => "jenkins_berman_20121107_1745.tar.bz2", :content_length => 88762572 } # ] def format_backup_file_data(file_hashes) by_host = {} file_hashes.each do |file_hash| (date, host, key) = extract_data_from_filename(file_hash[:key]) by_host[host] ||= [] by_host[host].push([date, key, file_hash[:content_length] / 2.0**20]) end "".tap do |output| by_host.each do |host, data| output << host.capitalize << ":" << $/ data.each do |datum| output << sprintf(" - %s key: %s (%0.2f MB)#{$/}", *datum) end output << $/ end end end def extract_data_from_filename(filename) sans_base = filename.gsub(/#{config.backup["file_name_base"]}_/, '').gsub(/\.tar\.bz2/, '') (hostname, date, time) = sans_base.split("_") formatted_date = Time.parse(date << time).strftime("%Y/%m/%d %H:%M") [formatted_date, hostname, filename] end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
backup_jenkins-0.0.8 | lib/backup_jenkins/formatter.rb |
backup_jenkins-0.0.7 | lib/backup_jenkins/formatter.rb |