lib/transync/sync/sync_util.rb in transync-1.0.4 vs lib/transync/sync/sync_util.rb in transync-1.1.0

- old
+ new

@@ -6,38 +6,49 @@ def self.info_clean(file, language, message) msg = "#{file} (#{language}) - #{message}" SyncUtil.log_and_puts(msg) end - def self.info_diff(file, language, diff) - msg = "#{file} (#{language})" - if diff.empty? - msg += ' already has same keys and values' - else - msg = build_diff_print(diff, msg) + def self.info_diff(file, language, diff, diff_only = nil) + msg = '' + + unless diff.empty? + msg = "#{file} (#{language})\n" if not diff_only + msg = build_diff_print(diff, msg, diff_only) end SyncUtil.log_and_puts(msg) end - def self.build_diff_print(diff, msg) + def self.build_diff_print(diff, msg, diff_only = nil) begin # get longest key and value max_key_length = diff.keys.max { |a, b| a.length <=> b.length }.length max_val_length = diff.values.max { |a, b| a[1].to_s.length <=> b[1].to_s.length }[1].length rescue max_key_length = 0 max_val_length = 0 end + newline = '' diff.keys.each do |key| - operation = diff[key][1].nil? ? 'Adding' : 'Changing' - msg += "\n #{operation.ljust(8)} - #{key.ljust(max_key_length)}: '#{diff[key][1].to_s.ljust(max_val_length)}' => '#{diff[key][0]}' " + change_mark = ' => ' + operation = diff[key][1].nil? ? 'adding' : 'changing' + ljust = 8 + + if diff_only + operation = 'diff' + change_mark = ' <=> ' + ljust = 4 + end + + msg += "#{newline}[#{operation.ljust(ljust)}] #{key.ljust(max_key_length)}: '#{diff[key][1].to_s.ljust(max_val_length)}'#{change_mark}'#{diff[key][0]}' " + newline = "\n" end msg end def self.log_and_puts(msg) - puts msg + puts msg unless msg.length == 0 @logger.info msg end def self.create_logger(direction) @logger = Logger.new(".transync_log/#{direction}.log", 'monthly')