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.