lib/excel2local.rb in excel2local-0.1.2 vs lib/excel2local.rb in excel2local-0.1.3

- old
+ new

@@ -1,44 +1,54 @@ -require "excel2local/version" -require "roo" - -module Excel2local - - def self.localize_all! (locate) - Dir["#{locate}/*.xlsx"].each { |file| - localize! "#{file}","#{locate}" - } - end - - def self.localize! (excel_file, save_place) #excel_file - фаил с переводом - puts "Excel2local::localize! from #{excel_file} ---> to #{save_place}/" - workbook = Roo::Excelx.new(excel_file) #подсовываем фаил в библиотеку - yml_file = [] # создаем массив для имен файлов - simbol_memory = [] - workbook.each_with_index {|row, row_index| #начинаем перебор строк - if (row_index == 0) then #если первая строка то начинаем создавать файлы локализаций - row.each_with_index { |col, col_index| # перебираем колонки - File.open("#{save_place}/#{File.basename(excel_file, ".xlsx")}_#{col}.yml", "w") { |file| file.puts "#{col}:" } if col_index != 0 && col != "#" #если не 1 колонка то создаем фаил локали - yml_file[col_index] = col #кладем имя файла в массив в соответствующий индекс - simbol_memory[col_index] = [] - } - else - row.each_with_index { |col, col_index| #если не первая строка - @simbol = col if col_index == 0 #если - #break if # - if (col_index != 0) and (@simbol != nil ) and (col != nil) - @simbol.to_s.split(".").each_with_index { | simbol, index | - simbol = "\'" + simbol + "\'" if [ "true", "false", "on", "off", "yes", "no" ].member?(simbol) - if simbol != simbol_memory[col_index][index] then - File.open("#{save_place}/#{File.basename(excel_file, ".xlsx")}_#{yml_file[col_index]}.yml", "a") { |file| file.print " "*(index+1) + "#{simbol}:" } if @simbol.to_s.split(".").length - 1 == index - File.open("#{save_place}/#{File.basename(excel_file, ".xlsx")}_#{yml_file[col_index]}.yml", "a") { |file| file.puts " "*(index+1) + "#{simbol}:" } if @simbol.to_s.split(".").length - 1 != index - index.upto(@simbol.to_s.split(".").length ) { |n| simbol_memory[col_index].delete_at(n)} - end - simbol_memory[col_index][index] = simbol - } - File.open("#{save_place}/#{File.basename(excel_file, ".xlsx")}_#{yml_file[col_index]}.yml", "a") { |file| file.puts " \'#{col}\'" } # пишем сам символ - end - } - end - } - end +require "excel2local/version" +require "roo" + +module Excel2local + + def self.localize_all! (locate) + Dir["#{locate}/*.xlsx"].each { |file| + localize! "#{file}","#{locate}" + } + end + + def self.localize! (excel_file, save_place) #excel_file - фаил с переводом + puts "Excel2local::localize! from #{excel_file} ---> to #{save_place}/" + workbook = Roo::Excelx.new(excel_file) #подсовываем фаил в библиотеку + yml_file = [] # создаем массив для имен файлов + simbol_memory = [] + workbook.each_with_index {|row, row_index| #начинаем перебор строк + if (row_index == 0) then #если первая строка то начинаем создавать файлы локализаций + row.each_with_index { |col, col_index| # перебираем колонки + File.open("#{save_place}/#{File.basename(excel_file, ".xlsx")}_#{col}.yml", "w") { |file| file.puts "#{col}:" } if col_index != 0 && col != "#" #если не 1 колонка то создаем фаил локали + yml_file[col_index] = col #кладем имя файла в массив в соответствующий индекс + simbol_memory[col_index] = [] + } + else + row.each_with_index { |col, col_index| #если не первая строка + @simbol = col if col_index == 0 #если + #break if # + if (col_index != 0) and (@simbol != nil ) and (col != nil) + @simbol.to_s.split(".").each_with_index { | simbol, index | + simbol = "\'" + simbol + "\'" if [ "true", "false", "on", "off", "yes", "no" ].member?(simbol) + if simbol != simbol_memory[col_index][index] then + File.open("#{save_place}/#{File.basename(excel_file, ".xlsx")}_#{yml_file[col_index]}.yml", "a") { |file| file.print " "*(index+1) + "#{simbol}:" } if @simbol.to_s.split(".").length - 1 == index + File.open("#{save_place}/#{File.basename(excel_file, ".xlsx")}_#{yml_file[col_index]}.yml", "a") { |file| file.puts " "*(index+1) + "#{simbol}:" } if @simbol.to_s.split(".").length - 1 != index + index.upto(@simbol.to_s.split(".").length ) { |n| simbol_memory[col_index].delete_at(n)} + end + simbol_memory[col_index][index] = simbol + } + File.open("#{save_place}/#{File.basename(excel_file, ".xlsx")}_#{yml_file[col_index]}.yml", "a") { |file| file.puts " \'#{col}\'" } # пишем сам символ + end + } + end + } + end + + def self.backup_all! (locate) + print "Excel2local::backup_all! to #{locate}/backups .. " + Dir.mkdir("#{locate}/backups") if File.directory?("#{locate}/backups") == false + Dir.mkdir(dir_name = "#{locate}/backups/#{Time.now.to_i}") + Dir["#{locate}/*.yml"].each { |file| + FileUtils.cp(file, dir_name) + } + puts "Done!" + end end \ No newline at end of file