Class: Babelyoda::LengthChecker

Inherits:
Object
  • Object
show all
Defined in:
lib/babelyoda/length_checker.rb

Instance Method Summary collapse

Constructor Details

#initialize(dev_language, params) ⇒ LengthChecker

Returns a new instance of LengthChecker.



3
4
5
6
# File 'lib/babelyoda/length_checker.rb', line 3

def initialize(dev_language, params)
  @dev_language = dev_language
  @params = params
end

Instance Method Details

#long_translations(keyset) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/babelyoda/length_checker.rb', line 8

def long_translations(keyset)
  long_translations = {}

  keyset.keys.each_value do |key|
    dev_value = key.values[@dev_language]
    dev_text = longest_translation(dev_value)
    dev_len = dev_text.length.to_f

    key.values.each_value do |value|
      text = longest_translation(value)
      len = text.nil? ? 0 : text.length
      ratio = len/dev_len
      big_ratio = ratio >= @params.ratio
      big_delta = (len - dev_len) >= @params.delta

      if big_ratio && big_delta
        lang = value.language.to_sym
        translation = Babelyoda::LongTranslation.new(dev_text, text, key.context)
        if long_translations.has_key?(lang)
          long_translations[lang].push(translation)
        else
          long_translations[lang] = [translation]
        end
      end
    end
  end
  long_translations
end