Class: Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/rabelyoda/hash.rb

Instance Method Summary collapse

Instance Method Details

#locale_diff(b) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/rabelyoda/hash.rb', line 4

def locale_diff(b)
  a = self
  b = {} if b.nil?
  diff = {}
  a.keys.each do |k|
    if a[k].respond_to?(:locale_diff)
      deeper_diff = a[k].locale_diff(b[k])
      diff[k] = deeper_diff if deeper_diff != {}
    else
      if !b.keys.include?(k)
        diff[k] = '[pls translate]' + a[k]
      elsif b.keys.include?(k) && b[k] == a[k]
        diff[k] = '[pls translate]' + a[k]
      else
        # keep translated strings
        diff[k] = b[k]
      end
    end
  end
  diff
end