YAML - Recuo e Separação

Indentação e separação são dois conceitos principais quando você está aprendendo qualquer linguagem de programação. Este capítulo fala sobre esses dois conceitos relacionados ao YAML em detalhes.

Recuo de YAML

YAML não inclui espaços obrigatórios. Além disso, não há necessidade de ser consistente. O recuo YAML válido é mostrado abaixo -

a:
   b:
      - c
      -  d
      - e
f:
      "ghi"
  • Você deve se lembrar das seguintes regras ao trabalhar com indentação em YAML: Os blocos de fluxo devem ter pelo menos alguns espaços circundando o nível do bloco atual.

  • O conteúdo do fluxo de YAML abrange várias linhas. O início do conteúdo do fluxo começa com{ ou [.

  • Os itens da lista de blocos incluem o mesmo recuo que o nível do bloco circundante porque - é considerado parte do recuo.

Exemplo de bloco pretendido

Observe o seguinte código que mostra recuo com exemplos -

--- !clarkevans.com/^invoice
invoice: 34843
date   : 2001-01-23
bill-to: &id001
   given  : Chris
   family : Dumars
   address:
      lines: |
            458 Walkman Dr.
            Suite #292
      city    : Royal Oak
      state   : MI
      postal  : 48046
ship-to: *id001
product:
    - sku         : BL394D
      quantity    : 4
      description : Basketball
      price       : 450.00
   - sku         : BL4438H
      quantity    : 1
      description : Super Hoop
      price       : 2392.00
tax  : 251.42
total: 4443.52
comments: >
    Late afternoon is best.
    Backup contact is Nancy
    Billsmer @ 338-4338.

Separação de Strings

Strings são separados usando string entre aspas duplas. Se você escapar dos caracteres de nova linha em uma determinada string, ele será completamente removido e convertido em valor de espaço.

Exemplo

Neste exemplo, enfocamos a lista de animais listados como uma estrutura de array com tipo de dados de string. Cada novo elemento é listado com um prefixo de hífen conforme mencionado como prefixo.

-
 - Cat
 - Dog
 - Goldfish
-
 - Python
 - Lion
 - Tiger

Outro exemplo para explicar a representação de string em YAML é mencionado abaixo.

errors:
      messages:
         already_confirmed: "was already confirmed, please try signing in"
         confirmation_period_expired: "needs to be confirmed within %{period}, please request a new one"
         expired: "has expired, please request a new one"
         not_found: "not found"
         not_locked: "was not locked"
         not_saved:
            one: "1 error prohibited this %{resource} from being saved:"
            other: "%{count} errors prohibited this %{resource} from being saved:"

Este exemplo se refere ao conjunto de mensagens de erro que um usuário pode usar apenas mencionando o aspecto principal e buscar os valores de acordo. Este padrão de YAML segue a estrutura de JSON que pode ser entendida por usuários que são novos em YAML.