class Lokale::Exporter::Diff

Attributes

lang[R]
missing_strings[R]

Public Class Methods

find(files, main_lang) click to toggle source
# File lib/lokale/agent.rb, line 274
def self.find(files, main_lang)
  groups = files.group_by { |lf| lf.lang }
  main_files = groups[main_lang]
  diffs = []
  groups.each do |lang, files|
    next if lang == main_lang
    diffs << Diff.new(main_files, files, lang)
  end
  diffs.delete_if { |d| d.empty? }
end
new(main_files, lfiles, lang) click to toggle source
# File lib/lokale/agent.rb, line 285
def initialize(main_files, lfiles, lang)
  @lang = lang
  @missing_strings = Hash.new { |h, k| h[k] = [] }
  lfiles.each do |lf|
    next unless lf.strings_file?
    counterpart = main_files.select { |m| m.full_name == lf.full_name }.sample
    next if counterpart.nil?

    missing_keys = counterpart.keys - lf.keys
    next if missing_keys.empty?

    counterpart.parsed.each do |lstr|
      next unless missing_keys.include? lstr.key 
      @missing_strings[lf.full_name] << lstr.for_export(lang)
    end
  end
end

Public Instance Methods

empty?() click to toggle source
# File lib/lokale/agent.rb, line 303
def empty?
  @missing_strings.empty? || @missing_strings.all? { |file_name, strings| strings.empty? }
end