Как я могу сортировать файлы yaml?

Я пытался отсортировать файл yaml i18n yaml с ruby, чтобы я могу управлять новыми переводами в лучшем и организованным способом, но мне было интересно, если есть что-то, чтобы облегчить задачу.

Я нашел писатель YAML-файла, чтобы я мог написать хэш в файл, но моя проблема состоит в том, чтобы правильно отсортировать хеш. Если я получил хеш H , h.sort Возвращает массив, и я до сих пор не понял простой способ сделать это.

У меня есть такие файлы yaml, такие как это:

pt-br:    
  global:
    misc:
      total: "Total"
      all: "Todos"
      close: "Fechar"
      cancel: "Cancelar"

    crud:
      access: "Acessar"
      back: "Voltar"
      edit: "Editar"
      confirm: "Confirmar"
      send: "Enviar"

...

(файлы находятся больше, чем это)

, но я хочу отсортировать их таким образом:

pt-br:    
  global:
    crud:
      access: "Acessar"
      back: "Voltar"
      confirm: "Confirmar"
      edit: "Editar"
      send: "Enviar"

    misc:
      all: "Todos"
      cancel: "Cancelar"
      close: "Fechar"          
      total: "Total"

Я думал, что какой-то простой рекурсивный метод может помочь мне так:

def translation_sort(h)
  if h.class == Hash
    h = h.sort
    h.each{|item| translation_sort(item)}
  end
  h
end

require "yaml"
h=YAML.load_file(File.open("~/pt-br.sample.yml"))
translation_sort(h)
18
задан j0k 13 February 2013 в 17:02
поделиться