class Applocale::CompareStringFiles
Attributes
applocale_file1[R]
applocale_file2[R]
langpath_comparison_list[R]
platform[R]
result_file[R]
setting1[R]
setting2[R]
Public Class Methods
new(platform, applocale_file1, applocale_file2, setting1, setting2, result_file)
click to toggle source
# File lib/applocale/Core/CompareStringFile/compare_string_files.rb, line 30 def initialize(platform, applocale_file1, applocale_file2, setting1, setting2, result_file) @platform = platform @applocale_file1 = applocale_file1 @applocale_file2 = applocale_file2 @setting1 = setting1 @setting2 = setting2 @result_file = result_file @langpath_comparison_list = @setting1.lang_path_list.map do |lang_path_obj| file1 = lang_path_obj.filepath file2 = @setting2.lang_path_list.detect { |e| e.lang == lang_path_obj.lang }&.filepath Applocale::Config::LangPathComparison.new(platform, lang_path_obj.lang, file1, file2) end compare_all end
Public Instance Methods
compare_all()
click to toggle source
# File lib/applocale/Core/CompareStringFile/compare_string_files.rb, line 10 def compare_all results = @langpath_comparison_list.map do |langpath_comparison| lang = langpath_comparison.lang file1 = langpath_comparison.filepath1 file2 = langpath_comparison.filepath2 if file1.nil? or file2.nil? Applocale::Config::LangPathComparisonResult.new(langpath_comparison, "Warning: [#{lang}] missing files for comparison!!!!!") else Applocale::CompareStringFile.compare(langpath_comparison) end end results.each {| result | unless result.warning.nil? puts result.warning.yellow end } write_result_to_csv(results) puts "Comparison Finished, output: #{result_file} !!!".green end
write_result_to_csv(results)
click to toggle source
# File lib/applocale/Core/CompareStringFile/compare_string_files.rb, line 45 def write_result_to_csv(results) filtered_results = results.select do | result | result.warning.nil? end columns = filtered_results .map { |result| result.lang } .flat_map do | lang | ["notSame", "duplicateKey", "mismatch", "missingKeyIn1st", "missingkeyIn2nd"].map { |column| "#{lang}: #{column}" } end values = filtered_results.flat_map { |result| [result.not_same, result.duplicate_key, result.mismatch, result.missing_in_1, result.missing_in_2] } values_max_length = values.max { |a,b| a.length <=> b.length }.length _first_value, *other_values = values first_value = values_max_length.times.collect { |i| _first_value[i] } csv_values = first_value.zip(*other_values) CSV.open(@result_file, "w") do | csv | csv << columns csv_values.each { | row | csv << row } end end