#!/usr/bin/env ruby

require 'rubygems'
require 'ermahgerd'
require 'yaml'
require 'awesome_print'

def deep_derp(h)
  Marshal.load(Marshal.dump(h))
end

def interperlert(str, ar = [])
  return [''] if str.to_s.size == 0

  i = str.partition(/%{.+?}/).reject { |c| c.empty? }
  if i.size == 1
    return ar + i
  else
    n = i.pop
    return interperlert(n, ar + i)
  end
end

def gersbermps(str)
  interperlert(str).map {|w| w =~ /%{.+?}/ ? w : Ermahgerd.translate(w) }.join('')
end

def trernslert(y, kerpie: false)
  if y.has_key? 'en'
    if kerpie
      { 'en' => y['en'], 'er' => trernslert(deep_derp(y['en'])) }
    else
      { 'er' => trernslert(deep_derp(y['en'])) }
    end
  else
    y.each_pair do |k, v|
      if v.is_a?(Hash)
        y[k] = trernslert(v)
      elsif v.is_a?(Array)
        y[k] = v
      else
        y[k] = gersbermps(v)
      end
    end
  end
end

# TODO: Merks it erser n der prergremer
#   find . -name "en.yml" | while read i; do echo $i `dirname $i`/er.yml; ./ermahgerd.rb < $i > `dirname $i`/er.yml; done
# Nerp kerpie
#   find . -name "*.yml" | while read i; do ./ermahgerd.rb < $i > $i.new && mv -v $i.new $i; done

yerml = YAML.load(STDIN)
trernslerted = trernslert(yerml, kerpie: true)
STDOUT.write(trernslerted.to_yaml(line_width: -1))